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

时间:2013-03-22 13:58:02

标签: android service google-play auto-update

如果用户已启用"自动更新"我会随时在Market中发布我的应用的新版本选项,应用程序将自动更新。

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

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

adb install oldversion.apk

自动更新:

adb install -r newversion.apk

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

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

3 个答案:

答案 0 :(得分:7)

如果您的应用在API 12或更高版本上投放,我建议您注册BroadcastReceiver收听android.intent.action.MY_PACKAGE_REPLACED

仅当您的应用程序获得更新时才会触发此Intent。

答案 1 :(得分:4)

这是您必须仔细测试的内容,但您应该能够通过行动Intent.ACTION_PACKAGED_REPLACED

的广播接收器来捕捉它

然后从接收器开始服务。

答案 2 :(得分:1)

BroadcastReceiver注册到Intent.ACTION_PACKAGE_REPLACED

然后,将EXTRA_UID与您自己进行比较。如果匹配,您可以再次开始服务。