我的应用程序使用 AlarmManager,它已经工作了4年了。但我注意到有些设备开始出现故障。
我非常肯定代码是正确的(我使用的是 Wakeful BroadcastReceiver,并且在带有 Doze 的设备上使用 setExactAndAllowWhileIdle) ,因为它在 Nexus 设备上运行得很好,但是在一些制造商的设备上(华为,小米...)却失败了。
例如,华为的设备有一种电池管理器,可以关闭应用程序,当一个应用程序被关闭时,预定的警报就会被取消。因此,在华为设置应用程序为“受保护”的电池管理器就解决了这个问题。
但是最近我注意到它并不适用于更多的设备,比如小米,三星(也许它和新的“智能管理器”有关?)似乎这种行为正在成为一种标准: 扼杀后台应用程序。
有人知道这件事吗? 有什么办法能确保警报响起吗?
编辑: 这个问题是由不同厂家添加的“电池节省器”引起的。更多信息请点击这里: https://dontkillmyapp.com/