Android AlarmManagers 会在应用更新后继续运行吗?
Posted
技术标签:
【中文标题】Android AlarmManagers 会在应用更新后继续运行吗?【英文标题】:Do Android AlarmManagers continue to run after an app update? 【发布时间】:2014-08-22 15:38:05 【问题描述】:据我所知,如果您安排一个无限重复的警报,它不会停止运行,直到您重新启动设备或卸载应用程序。
我想知道,在应用更新时这些行为如何?例如,您从 Play 商店下载应用程序的第 1 版,然后运行该应用程序,此警报开始运行。然后发布第二版并执行自动或手动更新。此闹钟是否仍会继续运行(或者您必须再次启动应用程序才能启动闹钟)?
在我的场景中,我确实需要它这样做,所以我希望答案是它会继续运行。但是,如果您在版本 2 中更改了警报代码,会发生什么?
【问题讨论】:
【参考方案1】:答案似乎是,在大多数 android 版本的应用更新后,AlarmManager
警报确实会继续运行。当然适用于 Android 2.2 或更高版本。 AlarmManagerService
中的 UninstallReceiver
已更新,可以在不终止警报的情况下处理包更新 - 请参阅 here,其中有明确的评论:
// 这个包正在更新中;不要杀死它的警报。
处理这个问题的代码不在 2.1 AlarmManagerService.UninstallReceiver
我意识到这可能是 3 年来最好的部分,无法帮助 OP,但希望它可以帮助其他人。
【讨论】:
【参考方案2】:执行this 之类的操作。
基本上,如果您的应用每次启动时都使用相同的 ID 重新运行 PendingIntent,如果它正在运行,则不会发生任何事情,如果它没有运行,它将开始运行。
这样您就不必担心更新后闹钟会丢失。
【讨论】:
以上是关于Android AlarmManagers 会在应用更新后继续运行吗?的主要内容,如果未能解决你的问题,请参考以下文章