我使用Nexus 4 - Android 4.3 - api_18。Android AlarmManager - ELAPSED_REALTIME當睡眠時繼續重複
當我使用AlarmManager.ELAPSED_REALTIME
安排PendingIntent
時,當設備處於睡眠模式時,鬧鐘繼續呼叫我的BroadcastReceiver
。
文檔中說,當設備進入睡眠狀態時,BroadcastReceiver
只調用一次,然後當設備被喚醒:
如果它熄滅,而該設備是睡着了,它不會被傳遞到 的下一次該設備醒來。
在我的情況下,當設備睡着時,BroadcastReceiver
被反覆調用。
我的代碼
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(),
DELAI_PLANNIF_TICK,
pendingIntent);
你怎麼知道你的設備進入睡眠模式? –
嗨,好問題,我只關閉設備上的按鈕屏幕。當屏幕關閉並且我收到時,我測試:pm.isScreenOn(),它是錯誤的。我想設備是在睡眠模式呢? –
在休眠模式下,CPU處於低功耗狀態,因此不會執行代碼(可能會被鬧鐘喚醒),通常會在屏幕關閉幾秒後發生。 – Piovezan