我读了很多关于这方面的话题,没有人对你有帮助。因此,当我将警报安排超过30分钟后,我将电话放在某个位置,警报无法按时运行,但是当我打开设备时它会起作用,我发现问题是警报管理器在设备被阻止时被阻止在空闲时我尝试了一个wakeLock,但没有任何结果
我正在使用
alarmManger.setExact(AlarmManager.RTC_WAKEUP,time,pi)
即使在空闲状态下,如何使报警工作
尝试使用像setExactAndAllowWhileIdle
这样的alarmManger.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,time,pi)
。
并且还检查您的应用程序的电池优化设置已关闭,以便设备的Android自定义ROM不会因为节省电池而终止后台服务。
这段代码工作得很好:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,time,pi);}
else {
alarmManager.setExact(AlarmManager.RTC_WAKEUP,time,pi);}
}else {
alarmManager.set(AlarmManager.RTC_WAKEUP,time,pi);
}