0

我正在尝试使用 SharedPreferences 让我的 Android 应用程序每天运行一次方法。这是我到目前为止所拥有的代码..

    //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?

    }
4

2 回答 2

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,那就太好了

于 2013-07-03T04:49:00.173 回答
1

为了执行周期性任务,例如每天执行一个方法,正确的方法是使用 AlarmManager,它将根据您的计划配置触发广播,执行其 onReceive 方法,这是执行此类计划事件任务的正确方法,请参阅以下示例以更好地了解如何执行此操作:

http://www.techrepublic.com/blog/app-builder/use-androids-alarmmanager-to-schedule-an-event/2651

问候!

于 2013-07-03T01:10:48.863 回答