应用更新后,Android AlarmManager会继续运行吗?

时间:2014-07-02 00:16:58

标签: android alarmmanager android-alarms repeatingalarm

从我所看到的情况来看,如果你安排一个无限期重复的警报,它将不会停止运行,直到你重启设备或卸载应用程序。

我想知道,在应用更新的情况下,这些行为如何?例如,您从Play商店下载该应用程序的版本1,然后运行该应用程序,此警报开始运行。然后发布版本2并执行自动或手动更新。此警报是否仍在继续运行(或者您必须再次启动应用程序才能启动警报)?

在我的场景中,我确实需要这样做,所以我希望答案是它会继续运行。但是,如果您在版本2中更改了警报代码,会发生什么?

2 个答案:

答案 0 :(得分:13)

答案似乎是,在大多数Android版本的应用更新后,AlarmManager警报会继续运行。当然适用于Android 2.2或更高版本。 AlarmManagerService中的UninstallReceiver已更新为处理包更新而不会终止警报 - 请参阅here哪里有明确的评论:

  

//这个包正在更新;不要杀死它的警报。

处理此问题的代码不在2.1 AlarmManagerService.UninstallReceiver

我意识到这可能是帮助OP的3年来最好的部分,但希望它可以帮助其他人。

答案 1 :(得分:1)

执行this之类的操作。

基本上,如果您的应用每次启动时都会使用相同的ID重新运行PendingIntent,如果它正在运行,则不会发生任何事情,如果它没有运行,它将开始运行。

这样您就不必担心更新后会丢失警报。