gpt4 book ai didi

android - PACKAGE REMOVED 然后 PACKAGE_ADDED 与 PACKAGE_REPLACED Intent Action 一起被触发

转载 作者:IT老高 更新时间:2023-10-28 23:11:22 30 4
gpt4 key购买 nike

我要做的只是在每次安装和卸载时更新我的​​列表,但不是在 Package Replace 上。所以主要问题是在每次 Replace 操作时都会启动安装和卸载 Intent 。 p>

所以为此,我实现了如下的 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 触发 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;

关于android - PACKAGE REMOVED 然后 PACKAGE_ADDED 与 PACKAGE_REPLACED Intent Action 一起被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217237/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com