您不能“中断”/停止/禁用打瞌睡模式,但有一些方法可以在设备打瞌睡时暂时解除应用程序的限制。
- 高优先级 FCM 消息。
FCM 高优先级消息让您能够可靠地唤醒您的应用程序以访问网络,即使用户的设备处于打盹或应用程序处于应用程序待机模式。在 Doze 或 App Standby 模式下,系统传递消息并让应用程序临时访问网络服务和部分唤醒锁,然后将设备或应用程序返回到空闲状态。
高优先级 FCM 消息不会影响打盹模式,也不会影响任何其他应用程序的状态。这意味着您的应用可以使用它们进行有效通信,同时最大限度地减少对系统和设备的电池影响。
andAllowWhileIdle使用 AlarmManager 设置的警报。
打盹特别有可能影响 AlarmManager 警报和计时器管理的活动,因为 Android 5.1(API 级别 22)或更低版本中的警报在系统处于打盹时不会触发。
为了帮助安排闹钟,Android 6.0(API 级别 23)引入了两个新的 AlarmManager 方法:setAndAllowWhileIdle() 和 setExactAndAllowWhileIdle()。使用这些方法,您可以设置即使设备处于打瞌睡状态也会触发的警报。
请注意,打盹模式下两次警报之间的最小间隔为 9 分钟。
对于这两种情况,您的应用程序会在短时间内恢复完整功能(意味着:打盹限制不适用),当该时间到期时,操作系统将恢复打盹限制。
请注意,在这些“唤醒”期间,您无需打开屏幕即可执行代码。
我手头没有消息来源,但我相信我命名的短时间约为 10 秒。
来源和附加阅读