我正在制作一个包含闹钟功能的应用程序。为此,我正在使用 AlarmManager 进行测试setExactAndAllowWhileIdle() 与 RTC_WAKEUP 和 BoadcastReceiver 以及 setAlarmClock 一起使用,以便在 Doze 模式下工作。在 Android Pie 中一切工作正常,但当我在 Marshmallow 中测试时,我认为出现了随机延迟,有时甚至无法工作。
今天在我的测试中,我注意到棉花糖(ZTE)中有一个奇怪的行为,如果我在包名称中使用“时钟”一词,突然一切正常。这是一种已知的行为吗?有人可以重现这种行为吗?还有另一种方法可以使用setAlarmClock()而不必使用包中的“时钟”一词吗?
我一直在互联网上查找,唯一类似的东西I found was :
Also I remember that some chinese phones would not kill apps that had the word "alarm" in the package name :-).
编辑:
更正,不是我在包中使用“时钟”一词,而是在 applicationId 中使用, 我认为两者是同一件事。
最佳答案
也许添加权限
<uses-permission `enter code here`android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
并在用户首次安装应用程序时向用户请求,以防他使用的是 Android M 或更高版本
关于java - 棉花糖中Android AlarmManager的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60679229/