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

问题描述 投票:9回答:2

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

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

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

android alarmmanager android-alarms repeatingalarm
2个回答
13
投票

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

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

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

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


1
投票

做像this这样的事情。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.