我正在检查用户执行操作后是否已经过了一个多小时。
目前,我将日期/时间存储在sharedpreferences中,然后当用户再次点击该活动时,我用当前时间检查sharedpref时间。例如,如果用户今天上午10点在应用程序中做了一些事情,然后明天凌晨3点回来,我想知道是否已经过了一个多小时。
我尝试了SO提供的一系列答案,但运气不佳。似乎sharedpref时间被保存为日期“8/17/16”,而不是timeInMili。任何帮助都会很好。
活动方法:
lastConfigCheck = prefs.getString("LAST_CONFIG_CHECK_DATE", null);
if (lastConfigCheck == null) {
lastConfigCheck = String.valueOf(System.currentTimeMillis());
editor.putString("LAST_CONFIG_CHECK_DATE", lastConfigCheck);
editor.apply();
Log.d("hellohours", lastConfigCheck);
}
else {
long todaysTime = System.currentTimeMillis();
Long timeElapsed = todaysTime - Long.valueOf(lastConfigCheck);
if (timeElapsed > 120000) {
Log.d("hellohours", "boom digity");
} else {
Log.d("hellohours", "boom awesome");
}
}
当我检查logcat时,它指出
Long timeElapsed = todaysTime - Long.valueOf(lastConfigCheck);
原因:
"java.lang.NumberFormatException: Invalid long: "8/17/2016"'