每当我在市场上发布我的应用程序的新版本时,如果用户启用了“自动更新”选项,该应用程序将自动更新。
该应用程序包含一个持续运行的服务。但是当自动更新发生时,旧的正在运行的应用程序被杀死,但新的应用程序没有启动。 由于更新对用户来说几乎是透明的,因此应用的服务应该在更新后自动重新启动是有道理的,这样服务几乎不会中断。
用市场上的真实更新来测试这个有点困难,所以我使用以下两个 adb 命令来模拟这个更新过程。 安装第一个版本:
adb install oldversion.apk
自动更新:
adb install -r newversion.apk
在我运行第二个命令后,应用程序成功更新,但它已停止并且没有重新启动。
如何让新版本的服务自动启动?
最佳答案
如果您的应用在 API 12
或更高版本上运行,我建议注册一个 BroadcastReceiver
来监听 android.intent.action.MY_PACKAGE_REPLACED
.
此 Intent 仅在您的应用程序获得更新时触发。
关于android - 市场更新后自动重启应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572154/