据我所知,如果你设置了一个无限重复的闹钟,它不会停止运行,直到你重新启动你的设备或卸载应用程序。
我想知道,这些行为在一个应用程序更新的事件?例如,你从Play Store下载了应用程序的版本1,然后运行应用程序,这个闹钟就开始运行了。然后发布版本2,并执行自动或手动更新。这个闹钟还在运行吗(或者你必须再次启动应用程序来启动闹钟)?
在我的场景中,我确实需要它这样做,所以我希望答案是它会继续运行。但是,如果在版本2中更改警报代码会发生什么呢?
答案似乎是AlarmManager
警报在大多数Android版本的应用程序更新后继续运行。当然适用于Android 2.2或以上版本。AlarmManagerService
中的UninstallReceiver
被更新为在不杀死警报的情况下处理包更新-见这里有明确的注释:
//这个包正在被更新;别关掉它的警报。
处理此问题的代码不在2.1 AlarmManagerService中。UninstallReceiver
我意识到这可能是3年来最好的部分,对OP来说太晚了,但希望它能帮助其他人。
这样做
本质上,如果每次你的应用启动时你用相同的ID重新运行你的PendingIntent,如果它正在运行什么都不会发生,如果它没有运行,它会开始运行。
这样你就不用担心更新后会丢失闹钟了