Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java alarmmanager是否总是在重新启动后清除?_Java_Android_Alarmmanager_Reboot_Bootcompleted - Fatal编程技术网

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中取消警报),所以我会在设置之前取消它。谢谢你的帮助!