【问题标题】:Android application life cycle when application is being updated by Play StorePlay Store更新应用程序时的Android应用程序生命周期
【发布时间】:2015-10-09 07:29:09
【问题描述】:
当应用被 Play 商店更新时,我找不到有关应用进程生命周期的信息。
例如,当应用程序的进程正在运行并且某些服务执行某些操作然后更新开始时,我希望在成功更新 apk 后整个进程被终止(“旧”应用程序正在运行),然后进程再次启动(带有“新”应用程序启动)。
自动更新的应用程序和手动更新的应用程序的这种行为会有所不同吗?
【问题讨论】:
标签:
android
google-play
apk
auto-update
android-update-app
【解决方案1】:
我刚刚手动测试了您通过 Play Market 更新应用程序的情况(真实设备、搭载 Android 7.0 的三星平板电脑、搭载 Android 8.0.0 版本的一加)。
- 如果应用程序在前台运行并且您对其进行了更新,则该应用程序将被终止。没有重启。当您重新开始时,应用程序就会从头开始创建。
- 如果应用在后台运行 - 行为相同。
您还可以通过命令adb install -r yourApp.apk 模拟应用更新。正如上面提到的here 和here。
我注意到,当应用程序正在运行并且您使用上述 adb 命令重新安装应用程序时,onDestroy 不会被调用。应用程序未重新启动。当你重新开始时 - 它是从头开始创建的。基本上,与我使用 Play Market 手动测试时的行为相同。
作为结论,当应用程序正在被 Play Market 更新并运行(后台或前台)时,它会被系统简单地杀死。
【解决方案2】:
您可以通过将广播接收器定义为 PACKAGE REPLACED 来停止服务并重新启动它,并检查哪个包已更新,如果它指定您的应用程序已更新,则执行必要的任务。它也适用于自动和手动更新。