市场更新后自动重启应用程序

mus*_*ikk 9 service android auto-update google-play

每当我在Market中发布我的应用程序的新版本时,如果用户启用了"自动更新"选项,该应用程序将自动更新.

该应用程序包含一个不断运行的服务.但是当自动更新发生时,旧的正在运行的应用程序被终止,但新的应用程序未启动.由于更新主要是透明地发生在用户身上,因此应该在更新后自动重新启动应用程序的服务,以便几乎不会中断服务.

使用市场上的真实更新对此进行测试有点困难,因此我使用以下两个adb命令来模拟此更新过程.安装第一版:

adb install oldversion.apk
Run Code Online (Sandbox Code Playgroud)

自动更新:

adb install -r newversion.apk
Run Code Online (Sandbox Code Playgroud)

运行第二个命令后,应用程序成功更新,但已停止但未重新启动.

我们如何让新版本的服务自动启动?

jan*_*nwo 8

如果您的应用程序正在运行API 12或更高,我建议您注册BroadcastReceiver收听android.intent.action.MY_PACKAGE_REPLACED.

只有在您的应用程序获得更新时才会触发此Intent.


Bud*_*ius 5

您必须对此进行仔细测试,但是您应该可以使用动作Intent在广播接收器中捕获它。ACTION_PACKAGED_REPLACED

然后,您从接收方启动服务。