应用升级后重启和Android服务

时间:2012-05-10 17:32:10

标签: android android-intent package upgrade broadcast

我有一个通过“看门狗”报警管理器保持运行的服务,它会检查服务是否正在运行并在需要时重新启动它。

这可以正常工作,直到用户从应用商店更新应用。大概是从手机中删除应用程序并更换程序包的过程会使我的AlarmMgr条目无效。

根据应用程序从应用程序商店升级后发生的程序包更改,有人可以告诉我应该使用哪些意图来重新安排服务。

似乎需要以下一项或多项。

        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_CHANGED"/>
            <action android:name="android.intent.action.PACKAGE_REPLACED"/>
            <action android:name="android.intent.action.PACKAGE_INSTALL"/>
        </intent-filter>

2 个答案:

答案 0 :(得分:0)

HERE他们说,“新安装的软件包没有收到此广播”。我认为所有这些广播都是一样的,这是出于安全考虑。此外,PACKAGE_INSTALL也已弃用。

答案 1 :(得分:0)

在Google上遇到过这个问题,所以认为值得更新答案的状态。从Honeycomb开始,现在有ACTION_MY_PACKAGE_REPLACED,它会在更新后发送到您的应用程序,这是为这种用例而设计的。

与2012年提出此问题时不同,对Android 2.3或更低版本的支持不再重要。