setExactAndAllowWhileIdle() for alarmmanager 工作不正常
我正在开发一个应用程序,它需要在用户设置的确切时间执行特定操作。为此,我正在使用方法,因为本文档说具有android 6.0或更高版本的Android设备具有doze模式概念,其中如果设备保持空闲状态一段时间,那么它将进入doze模式并且doze模式限制警报。如果我想在设备进入打瞌睡模式时触发警报,那么我有文档所说的方法。本文档还包含用于测试目的的将设备进入低电耗模式的手动方法。因此,我正在使用这种方式进行测试,但是当设备进入打瞌睡模式时,我的警报不会触发,当我通过终端命令停止打瞌睡模式时,我过去的警报将立即触发。setExactAndAllowWhileIdle()
setExactAndAllowWhileIdle()
所以,我的问题是这种方法在低潮模式下不起作用,但它应该必须像文档中所说的那样工作。我知道这种方法的局限性,我每9分钟只能发出一个警报,我遵循这个规则。所以,我不明白问题出在哪里。setExactAndAllowWhileIdle()
我的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC, d.getTime(), pendingIntent);
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
alarmManager.setExact(AlarmManager.RTC, d.getTime(), pendingIntent);
else
alarmManager.set(AlarmManager.RTC, d.getTime(), pendingIntent);
是方法问题还是我以错误的方式做了??