1

さて、皆さん、私はこの繰り返しのタスクを実行する必要があるので、カッププルアラームをスケジュールします。

private static void scheduleAlarm(Context context, AlarmManager alarmManager, String action, long interval) {
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, new Intent(action), PendingIntent.FLAG_UPDATE_CURRENT);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, pendingIntent);
}

しかし、システム時刻を変更すると、すべてのアラームが壊れます。つまり、最終的には発火しますが、システム時刻がアラームの時刻と同じになると。

この問題にどのように対処しますか?

4

1 に答える 1

1

ユーザーがシステム時刻を変更すると、次のインテントアクションでイベントがブロードキャストされます。android.intent.action.TIME_SET

このインテントをリッスンして、アラームのスケジュールを変更できます。

于 2012-07-06T12:02:28.037 に答える