0

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

这工作正常,直到用户从应用商店更新应用。大概是从手机中删除应用程序并替换包的过程使我的 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>
4

2 回答 2

0

他们在这里说,“新安装的包没有收到这个广播”。我认为所有这些广播都是一样的,这是出于安全原因。也PACKAGE_INSTALL已弃用。

于 2012-05-10T18:21:59.020 回答
0

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

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

于 2016-04-15T04:20:52.890 回答