7

当应用程序被 Play 商店更新时,我找不到有关应用程序进程生命周期的信息。

例如,当应用程序的进程正在运行并且某些服务执行某些操作然后更新开始时,我希望在成功更新 apk 后整个进程被终止(“旧”应用程序正在运行),然后进程再次启动(使用“新”应用程序推出)。

对于自动更新的应用程序和手动更新的应用程序,这种行为会有所不同吗?

4

2 回答 2

1

当您通过 Play Market 更新应用程序时,我刚刚手动测试了这种情况(真实设备、带有 Android 7.0 的三星平板电脑、带有 Android 8.0.0 版本的 One Plus)。

  • 如果应用程序在前台运行并且您对其进行更新,则该应用程序将被终止。没有重启。当你重新开始时,应用程序是从头开始创建的。
  • 如果应用程序在后台运行 - 相同的行为。

您也可以通过命令模拟应用程序更新adb install -r yourApp.apk。正如这里这里所提到的。

我注意到,当应用程序正在运行并且您使用上面提到的 adb 命令重新安装应用程序时,onDestroy不会调用。应用程序未重新启动。当您重新开始时 - 它是从头开始创建的。基本上,与我使用 Play Market 手动测试时的行为相同。

作为结论,当应用程序被 Play Market 更新并且它正在运行(后台或前台)时,它会被系统简单地杀死。

于 2018-05-03T07:42:24.207 回答
0

您可以通过将广播接收器定义为 PACKAGE REPLACED 来停止服务并重新启动它,并检查哪个包已更新,如果它指定您的应用程序已更新,则执行必要的任务。它也适用于自动和手动更新。

于 2015-10-09T07:37:22.910 回答