当设备进入打ze模式或省电模式时,我的PhoneStateListener停止工作。另外,我需要在设备重启时注册PhoneStateListener。我不想使用BroadcastReceiver,因为不再建议使用它,请参见https://developer.android.com/about/versions/oreo/background#broadcasts
答案 0 :(得分:1)
我不认为此时不建议使用BroadcastReceiver是正确的定义,它只是有更多limitations,例如为清单中的隐式广播和根据docs注册广播接收器:
- 应用程序可以继续在清单中注册显式广播
- 应用程序可以在运行时使用
Context.registerReceiver()
来为任何广播(无论是隐式的还是显式的)注册接收器。
打ze模式几乎没有restrictions,但是它提供了一种解决方案,可以使用AlarmManager
在打1模式和省电模式下触发警报:
如果您需要设置在打ze睡时触发的警报,请使用
setAndAllowWhileIdle()
或setExactAndAllowWhileIdle()
。
您应该大约setAndAllowWhileIdle和setExactAndAllowWhileIdle并确定哪一个与您相关。