【问题标题】:How to create PhoneStateListener that works in both Doze Mode and Power Saving Mode?如何创建可在打盹模式和省电模式下工作的 PhoneStateListener?
【发布时间】:2019-05-15 13:23:49
【问题描述】:
【问题讨论】:
标签:
java
android
phone-state-listener
android-doze
【解决方案1】:
我认为目前不推荐使用 BroadcastReceiver 是正确的定义,它只是有更多 limitations 例如在清单中为隐式广播注册广播接收器并根据文档:
- 应用可以继续在其清单中注册显式广播
- 应用可以在运行时使用
Context.registerReceiver() 为任何广播(无论是隐式还是显式)注册接收器。
打盹模式很少有restrictions,但它提供了一种解决方案,可以在打盹模式和省电模式下使用AlarmManager 发出警报:
如果您需要设置在打瞌睡时触发的警报,请使用setAndAllowWhileIdle() 或setExactAndAllowWhileIdle()。
您应该了解setAndAllowWhileIdle 和setExactAndAllowWhileIdle 并决定哪一个与您相关。