Java alarmmanager是否总是在重新启动后清除?
简单问题:Java alarmmanager是否总是在重新启动后清除?,java,android,alarmmanager,reboot,bootcompleted,Java,Android,Alarmmanager,Reboot,Bootcompleted,简单问题:AlarmManager是否总是在重新启动后清除?在所有设备上重新启动后,甚至在用户在启动设备后很快启动设备时,是否清除了该选项 我需要知道这一点,因为我在一个OnBootReceiver中重新创建了我的应用程序的警报,我希望避免设置双重警报 重新启动后是否始终清除AlarmManager 肯定是完全重启了。有些设备有一个“快速启动”(脑海中浮现的是HTC),而我还没有运行实验来观察其行为 即使用户在启动设备后很快就启动了它 对 我需要知道这一点,因为我在OnBootReceiver中
AlarmManager
是否总是在重新启动后清除?在所有设备上重新启动后,甚至在用户在启动设备后很快启动设备时,是否清除了该选项
我需要知道这一点,因为我在一个OnBootReceiver
中重新创建了我的应用程序的警报,我希望避免设置双重警报
重新启动后是否始终清除AlarmManager
肯定是完全重启了。有些设备有一个“快速启动”(脑海中浮现的是HTC),而我还没有运行实验来观察其行为
即使用户在启动设备后很快就启动了它
对
我需要知道这一点,因为我在OnBootReceiver中重新创建了应用程序的警报,我希望避免设置双重警报
报警有效地位于由pendingent
键控的HashMap
中。使用等效的pendingent
设置报警应取代先前的报警。所谓“同等”,我的意思是:
- 相同的操作(活动、服务、广播)
- 相同的请求代码
- 等效的
(通过Intent
匹配,这几乎意味着它匹配除附加项以外的所有内容)filterEquals()
- 当定义新的
pendingent
您可以使用
adb shell dumpsys alarm
来确认设置了哪些报警,这样您就可以确定最终的报警数量是正确的。因此,最好先在OnBootReceiver中调用cancel()
,然后再调用set()
?@Merlin:我个人认为,我不知道在任何情况下需要这样做。例如,HTC quickboot不会触发操作\u BOOT\u COMPLETED
。话虽如此,我们当然欢迎您这样做--cancel()
如果该pendingent
没有现有警报,那么应该不会有问题。是的,我的OnBootReceiver也会接收到android.intent.action.QUICKBOOT\u POWERON
(以防在QUICKBOOT中取消警报),所以我会在设置之前取消它。谢谢你的帮助!