应用程序更新后,我的服务会怎样?

时间:2014-10-14 21:31:42

标签: android service google-play

我正在编写一个带有服务组件的应用程序。就其本质而言,这项服务将在后台运行。

在任何时候,Google Play都可能会更新我的应用。即下载并安装到设备上的新APK。当我使用Eclipse ADT执行此过程时,服务将停止运行我已上载新版本的服务。

从Play商店更新应用时会发生什么?它有类似的东西吗?如果是这样,我怎样才能自动重启服务而无需让用户进行干预?

谢谢

1 个答案:

答案 0 :(得分:2)

当您的应用程序更新时,系统会发送两个广播:ACTION_MY_PACKAGE_REPLACED(仅发送到您的应用程序,可在API 12(3.1)或更高版本中使用)和ACTION_PACKAGE_REPLACED(发送到每个应用程序,检查Intent上的getData()以获取所有API级别的包名称。

您可以在BroadcastReceiver中创建一个AndroidManifest.xml来监听广播并启动您的服务。

我强烈建议禁用任何在Android 3.1+设备上监听ACTION_PACKAGE_REPLACED广播的接收方,否则您的接收方/进程也会在其他应用上被触发(在这种情况下,您可以想要两个接收器:一个用于< 3.1,一个用于> = 3.1并使用android:enabled和布尔资源根据API级别适当地禁用它们。