从我所看到的情况来看,如果你安排一个无限期重复的警报,它将不会停止运行,直到你重启设备或卸载应用程序。
我想知道,在应用更新的情况下,这些行为如何?例如,您从Play商店下载该应用程序的版本1,然后运行该应用程序,此警报开始运行。然后发布版本2并执行自动或手动更新。此警报是否仍在继续运行(或者您必须再次启动应用程序才能启动警报)?
在我的场景中,我确实需要这样做,所以我希望答案是它会继续运行。但是,如果您在版本2中更改了警报代码,会发生什么?
答案 0 :(得分:13)
答案似乎是,在大多数Android版本的应用更新后,AlarmManager
警报会继续运行。当然适用于Android 2.2或更高版本。 AlarmManagerService
中的UninstallReceiver
已更新为处理包更新而不会终止警报 - 请参阅here哪里有明确的评论:
//这个包正在更新;不要杀死它的警报。
处理此问题的代码不在2.1 AlarmManagerService.UninstallReceiver
中我意识到这可能是帮助OP的3年来最好的部分,但希望它可以帮助其他人。
答案 1 :(得分:1)
执行this之类的操作。
基本上,如果您的应用每次启动时都会使用相同的ID重新运行PendingIntent,如果它正在运行,则不会发生任何事情,如果它没有运行,它将开始运行。
这样您就不必担心更新后会丢失警报。