简单问题:重新启动后AlarmManager
始终 是否已清除?在所有设备上重启后是否清除,甚至用户在启动设备后很快启动设备?
我需要知道这一点,因为我在OnBootReceiver
中重新创建应用程序的警报,我想避免设置双重警报。
答案 0 :(得分:6)
重启后是否总是清除AlarmManager?
绝对完全重启。有些设备有“快速启动”(HTC浮现在脑海中),我还没有运行实验来查看那里的行为。
即使用户在启动设备后很快就启动了设备?
是
我需要知道这一点,因为我在OnBootReceiver中重新创建应用程序的警报,我想避免设置双重警报。
警报实际上位于由HashMap
键入的PendingIntent
中。使用等效PendingIntent
设置警报应替换先前的警报。 “等价”,我的意思是:
Intent
(通过filterEquals()
匹配,这意味着它匹配除了额外内容之外的所有内容)FLAG_CANCEL_CURRENT
PendingIntent
感到紧张
您可以使用adb shell dumpsys alarm
确认设置了哪些闹钟,因此您可以确保使用正确数量的闹钟。