在Android中更新应用程序时后台服务会发生什么?

时间:2015-05-16 19:50:58

标签: android background-service

假设我开始在第一个应用程序启动和启动时声明的重复后台服务。当我提供应用程序更新时会发生什么。该背景服务会被杀死吗? 用户是否必须再次打开应用程序以再次注册后台服务,否则应用程序将在更新时获得一些回调?

Edit-1 :作为答案之一,如果应用程序必须重新启动以启动服务,那么警报应用程序在更新后如何正常工作而不重新启动(我相信它使用后台服务)开始报警)?

2 个答案:

答案 0 :(得分:5)

  

该后台服务会被杀死吗?

它会被杀死。

  

用户是否必须再次打开应用程序以再次注册后台服务,否则应用程序将在更新时获得一些回调?

这取决于。基本上它需要用户活动,因为更新后应用程序不会自动重新启动。但是,如果您的目标是API 12或更高版本(现在应该是这样),您可以尝试使用ACTION_MY_PACKAGE_REPLACED广播。根据文件:

  

广播操作:已在现有版本上安装新版本的应用程序。这只发送给应用程序   被取代了。它不包含任何其他数据;受到   它,只需使用一个意图过滤器来执行此操作。

所以,一旦收到此广播,你就可以在BroadcastReceiver触发某些东西。

答案 1 :(得分:1)

该服务将被终止,需要重新开始。

服务不会在单独的进程上运行。 Service对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它与其所属的应用程序运行的过程相同。

因此,当应用程序更新时,应用程序将被发送到已停止状态。

你可以测试一下。 从谷歌游戏商店发起应用程序的更新(其中有一个服务E.g Whatsapp)。 打开应用程序并等待它完成。它停止了。您可以检查内部运行进程。将手机连接到DDMS。检查流程。