1

我使用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 毫秒)执行一次。

我记录了执行时间,发现了 2 个异常间隔:23 秒和 143 秒。

我不得不提到所有其他的时间间隔都很好(最多 11.1 秒)。

为什么会这样?如何避免这些异常?

4

0 回答 0