我正在尝试让我的Android应用程序每天使用SharedPreferences运行一次方法。这是我到目前为止的代码..
//for onEntry ad to run once daily
Calendar c = Calendar.getInstance();
int lastDayRan;
SharedPreferences prefs = this.getSharedPreferences(
"com.example.myapp", Context.MODE_PRIVATE);
if(prefs.getInt("lastDayRan", lastDayRan) != today){//what to do now?
}
答案 0 :(得分:5)
如果您想确保自上次运行所需方法后至少已过去一天,请执行以下操作:
long minStartTime = System.currentTimeMillis() - 1000*60*60*24;
long lastTimeRan = prefs.getLong("lastTimeRan", -1);
if (lastTimeRan >= minStartTime) {
// a day passed. do whatever...
//also save the new 'lastTimeRan' in prefs
prefs.edit().putLong("lastTimeRan", System.currentTimeMillis()).commit();
}
如果不是拧“lastTimeRan”,你会使用const
,这将是很好的答案 1 :(得分:1)
为了执行周期性任务,比如每天执行一个方法,正确的方法是使用AlarmManager,它会根据你的日程安排配置执行onReceive方法触发广播,这是做这种日程的正确方法事件任务,请参阅以下示例以更好地了解如何执行此操作:
http://www.techrepublic.com/blog/app-builder/use-androids-alarmmanager-to-schedule-an-event/2651
问候!