我正在開發一個需要頻繁運行小塊代碼的應用程序(例如每兩秒鐘一次)。我試圖使用簡單的Thread.sleep()(或android.os.SystemClock.sleep()來避免中斷,最後我嘗試了Timer和Handler),但結果是時間程序睡眠是隨機的(或者,如果我使用定時器或處理程序,因爲系統在屏幕關閉時丟棄它們的消息,它就不會運行),因爲系統在屏幕關閉期間進入深度睡眠模式。關閉屏幕的Android Timer/Handler/Thread.sleep()無法正常工作
例如,如果手機插入充電器或正在播放音樂(避免深度睡眠模式),則代碼正常工作,但當手機沒有做任何事情時,時間可能會從兩秒鐘長達幾分鐘的睡眠。
從https://groups.google.com/forum/#!topic/android-developers/Eqwp8Uiy2f0似乎唯一的選擇是使用AlarmManager強制喚醒,但這種方式可能會導致電池耗盡。
有沒有其他的選擇?
如果沒有,有什麼方法可以檢測系統何時進入深度睡眠模式?