据我所见,如果你设置了一个无限重复的闹钟,直到你重新启动设备或卸载应用程序之前,它都不会停止运行。
我想知道,在应用程序更新的情况下,这些闹钟是如何运作的?例如,你从Play Store下载了应用程序的版本1,并运行该应用程序,此时闹钟开始运行。然后发布了第二个版本并执行自动或手动更新。这个闹钟是否仍然继续运行(或者必须再次启动应用程序才能启动闹钟)?
在我的场景中,我需要它这样做,所以我希望答案是它将继续运行。然而,如果你在第二版中更改了闹钟代码,那会发生什么呢?
据我所见,如果你设置了一个无限重复的闹钟,直到你重新启动设备或卸载应用程序之前,它都不会停止运行。
我想知道,在应用程序更新的情况下,这些闹钟是如何运作的?例如,你从Play Store下载了应用程序的版本1,并运行该应用程序,此时闹钟开始运行。然后发布了第二个版本并执行自动或手动更新。这个闹钟是否仍然继续运行(或者必须再次启动应用程序才能启动闹钟)?
在我的场景中,我需要它这样做,所以我希望答案是它将继续运行。然而,如果你在第二版中更改了闹钟代码,那会发生什么呢?
AlarmManager
警报在应用更新后仍然保持运行。至少对于Android 2.2或以上版本如此。 AlarmManagerService
中的UninstallReceiver
已经更新以处理包更新而不会杀死警报-参见这里有明确的注释:
// 此包正在更新; 不要杀死它的警报。
处理这个问题的代码在2.1版的AlarmManagerService.UninstallReceiver中并没有。
我知道这可能迟了将近3年才来帮助提问者,但希望能对其他人有所帮助。
像这样做this。
实际上,如果每次您的应用程序启动时都使用相同的ID重新运行PendingIntent,如果它正在运行,则不会发生任何事情,如果它没有运行,则会开始运行。
这样,您就不必担心在更新后丢失警报。
adb
来安装由Android Studio生成的APK文件,闹钟不会消失。 - Caleb Kochadb
安装由Android Studio生成的APK文件,闹钟不会消失。 - undefined