3

我发现了 2 个类似的广播事件ACTION_PACKAGE_FULLY_REMOVEDACTION_PACKAGE_REMOVED. 但是有什么用例差异?如果我想在卸载软件包时接收广播事件,它们之间的真正区别是什么?

请注意:我是 android 开发和学习的新手。

4

2 回答 2

3

请参阅突出显示代码它两者之间的区别......

ACTION_PACKAGE_REMOVED -:广播动作:现有应用程序包已从设备中删除。数据包含包的名称。正在安装的包没有收到这个 Intent。

ACTION_PACKAGE_FULLY_REMOVED - :广播操作:现有应用程序包已从设备中完全删除。数据包含包的名称。这类似于 ACTION_PACKAGE_REMOVED,但仅在该广播的 EXTRA_DATA_REMOVED 为真且 EXTRA_REPLACING 为假时设置。

于 2013-07-16T10:50:02.350 回答
2

正如 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 不会每次都触发,我认为这是因为未安装的包没有任何额外数据。需要更多的测试来证明这一点。

于 2016-07-26T12:36:22.217 回答