この方法を使用して繰り返しアラームを設定しましたAlarmManager
:
AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmMgr.setRepeating (AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 100, 10000, mPendingIntent);
registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
sharedPrefsEditor.putString(TIMER_LOG_KEY, sharedPrefs.getString(TIMER_LOG_KEY, "") + Calendar.getInstance().getTimeInMillis() + "|");
sharedPrefsEditor.commit();
}
},
new IntentFilter(ALARM_TEST_TIMER_ACTION));
mPendingIntent
ブロードキャストを送信します。
アラームは 10 秒 (= 10,000 ms) ごとに実行されることになっています。
実行時間を記録したところ、23 秒と 143 秒という 2 つの例外的な間隔が見つかりました。
他のすべての間隔は良好であったことに言及する必要があります (最大 11.1 秒)。
なぜこれが起こるのですか?これらの例外を回避するにはどうすればよいですか?