我要做的就是更新每个Install& amp;的列表。在Package Replace上卸载但不。因此,主要问题是Install&每次替换操作都会启动卸载意图。
所以 为此,我实现了一个BroadcastReciever,如下所示
<receiver android:name =".IntentReceiverTest.AppReciever">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
在每次替换时,我获得3个带有动作的广播
所以请建议任何更好的方法来捕捉替换行动
或
通过PACKAGE_REMOVED和PACKAGE_ADDED 操作停止以前启动的服务的方法。
答案 0 :(得分:29)
只需检查intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
:
if (!intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) &&
intent.getBooleanExtra(Intent.EXTRA_REPLACING, false))
return;