2016-12-30 161 views
2

我希望我的應用每隔一段時間醒來一次。我用來設置鬧鐘的代碼是:不醒來鬧鐘的鬧鐘

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + pollInterval, pendingIntent); 

在鬧鐘處理程序中有代碼用上面的代碼重置鬧鐘。

問題是,當手機處於深度睡眠狀態時(例如,在凌晨),鬧鐘不響。

有什麼建議嗎?

回答

2

如果您使用的是Android 6.0或更高版本的手機,則必須處理打盹機制。所以,當手機處於睡眠狀態時,AlarmManager將不會立即工作。該文檔說:

標準AlarmManager報警(包括setExact()和setWindow()) 推遲到下一個維護時段。

如果您需要設置火災而在打盹,使用 setAndAllowWhileIdle()或setExactAndAllowWhileIdle()報警。

所以,只要嘗試使用setExactAndAllowWhileIdle()的API> 22

文檔here