0

SharedPreferences を使用して、Android アプリに 1 日 1 回メソッドを実行させようとしています。ここに私がこれまでに持っているもののコードがあります..

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

目的のメソッドを最後に実行してから少なくとも 1 日が経過したことを確認するには、次のようにします。

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 に答える