我发现了 2 个类似的广播事件ACTION_PACKAGE_FULLY_REMOVED
和ACTION_PACKAGE_REMOVED
. 但是有什么用例差异?如果我想在卸载软件包时接收广播事件,它们之间的真正区别是什么?
请注意:我是 android 开发和学习的新手。
我发现了 2 个类似的广播事件ACTION_PACKAGE_FULLY_REMOVED
和ACTION_PACKAGE_REMOVED
. 但是有什么用例差异?如果我想在卸载软件包时接收广播事件,它们之间的真正区别是什么?
请注意:我是 android 开发和学习的新手。
请参阅突出显示代码它两者之间的区别......
ACTION_PACKAGE_REMOVED -:广播动作:现有应用程序包已从设备中删除。数据包含包的名称。正在安装的包没有收到这个 Intent。
ACTION_PACKAGE_FULLY_REMOVED - :广播操作:现有应用程序包已从设备中完全删除。数据包含包的名称。这类似于 ACTION_PACKAGE_REMOVED,但仅在该广播的 EXTRA_DATA_REMOVED 为真且 EXTRA_REPLACING 为假时设置。
正如 android.googlesource.com/platform/packages/services/Telecomm 所说:
此类侦听 {@code PACKAGE_FULLY_REMOVED} 意图而不是 {@code PACKAGE_REMOVED},因为 {@code PACKAGE_REMOVED} 在重新安装同一包时触发,其中 {@code PACKAGE_FULLY_REMOVED} 仅在应用程序完全卸载时触发.
因此,要完全卸载,我们只需要 PACKAGE_FULLY_REMOVED。PACKAGE_REMOVED 甚至会触发重新安装。
但是根据测试,由于某种原因,PACKAGE_FULLY_REMOVED 不会每次都触发,我认为这是因为未安装的包没有任何额外数据。需要更多的测试来证明这一点。