有人能告诉我一个简单的方法来跟踪自活动开始以来是否已经过了一天?此外,如果已经过去做一些事情,如果没有,做一些事谢谢!
这是我的代码。我得到这个类异常,好像我想把一个int保存到long中,不知道在哪里。
Calendar calendar = Calendar.getInstance();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
long aux_time = prefs.getLong("AUX", -1);
int aux_day= prefs.getInt("DAY", -1);
if(System.currentTimeMillis()!=aux_time&&calendar.get(Calendar.DAY_OF_WEEK)!=aux_day)
{
... // Open "Not allowed Activity"
}
else
{
SharedPreferences.Editor editor = prefs.edit();
editor.putLong("AUX", System.currentTimeMillis());
editor.putInt("DAY", calendar.get(Calendar.DAY_OF_WEEK));
editor.commit();
... // Open Activity
}
有什么意见吗?
编辑:啊,关于那个Int类异常,忘了清理编辑器。此外,代码仍然无法正常工作。
答案 0 :(得分:1)
这是一种简单的方法......你很接近,但有些逻辑是错误的。
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor prefsEditor = prefs.edit();
long savedDate = prefs.getLong(PreferenceKeys.SAVED_DATE, System.currentTimeMillis());
if ((savedDate + (24 * 60 * 60 * 1000)) < System.currentTimeMillis()) {
prefsEditor.putLong(Constants.PREF_SERVER_BATCH_TIME, currentTime);
// 24 hours has passed...your code here.
}
}
答案 1 :(得分:0)
应该像使用SharedPreferences来存储和检索System.currentTimeMillis()
一样简单。如果您需要知道一天而不是24小时,您还需要使用Date
答案 2 :(得分:0)
每当您打开该活动时(在oncreate()中)使用System.currentTimeMillis()
向共享偏好添加值,其中包含有关当前日期/日期或时间的信息(如果想要追踪24小时而不是白天)。
在保存该检查之前,如果此时间(今天)尚未保存并继续进行..