PACKAGE_REMOVED然后PACKAGE_ADDED与PACKAGE_REPLACED意图行动一起被触发

我所要做的就是在每次安装和卸载时更新我的​​列表,但更新包更换。因此,主要问题是每次替换操作都会启动安装和卸载意图。

所以为此我已经实现了如下的BroadcastReciever

        

在每个替换我得到3个广播与行动

  • 首先使用PACKAGE_REMOVED激活AppReciever
  • 然后在PACKAGE_ADDED后再次激活AppReciever
  • 几秒后PACKAGE_REPLACED再次激活AppReciever

所以请建议任何更好的方法来捕捉替换行动

要么

由于PACKAGE_REMOVED和PACKAGE_ADDED操作而停止先前启动的服务的方法。

只需检查intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)

 if (!intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) && intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) return;