0
我用這個代碼來設置警報在我們的業務應用:AlarmManager setRepeating無視間隔
private void setupAlarm() {
final Context c = getApplicationContext();
final AlarmManager alarm =
(AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
final Intent i = new Intent(c, AlarmReceiver.class);
final PendingIntent sender =
PendingIntent.getBroadcast(c, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
final long startFromNow = System.currentTimeMillis()+10000;
final long timer = 5*60*1000;
alarm.setRepeating(AlarmManager.RTC_WAKEUP, startFromNow, timer, sender);
}
我無法理解,爲什麼報警的時間間隔的不尊重。第一次報警在10秒後開始(如預期),之後每2分鐘啓動一次(122秒至127秒),這是錯誤的。間隔時間是5分鐘,還是我錯了?
我在一個更簡單的應用程序中使用這個確切的代碼:一個活動,設置重複鬧鐘,接收器只是創建一個日誌。它有效。
什麼可以使AlarmManager的行爲如此不同? 我曾嘗試:
- 使用
set()
,並在報警接收機使用其他set()
超過5分鐘:發射2分鐘 - 使用
setInexactRepeating()
代替setRepeating()
:推出2分鐘
任何見解都會有所幫助。謝謝!