當設備進入打盹模式或省電模式時,我的 PhoneStateListener 停止工作。我還需要在設備重啟時注冊 PhoneStateListener。我不想使用 BroadcastReceiver,因為不再推薦它,請參閱https://developer.android.com/about/versions/oreo/background#broadcasts
1 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
我不認為不推薦 BroadcastReceiver 在這一點上是正確的定義,它只是有更多的限制,例如在清單中和根據文檔為隱式廣播注冊廣播接收器:
應用程序可以繼續在其清單中注冊顯式廣播
應用程序可以
Context.registerReceiver()
在運行時使用來為任何廣播注冊接收器,無論是隱式的還是顯式的。
Doze 模式幾乎沒有限制,但它提供了一種在 Doze 模式和省電模式下觸發警報的解決方案,使用AlarmManager
:
如果您需要設置在打瞌睡時觸發的警報,請使用
setAndAllowWhileIdle()
或setExactAndAllowWhileIdle()
。
您應該了解setAndAllowWhileIdle和setExactAndAllowWhileIdle并決定哪一個與您相關。
添加回答
舉報
0/150
提交
取消