我发现了2个类似的广播事件ACTION_PACKAGE_FULLY_REMOVED
和ACTION_PACKAGE_REMOVED
。但是有什么用例差异?如果我想在卸载软件包时收到广播事件,它们之间的真正区别是什么?
请注意:我是关于Android开发和学习的新手。
答案 0 :(得分:1)
请参阅高亮代码,以及它们之间的区别......
ACTION_PACKAGE_REMOVED - :广播操作:已从设备中删除现有的应用程序包。数据包含包的名称。正在安装的软件包不会收到此Intent。
ACTION_PACKAGE_FULLY_REMOVED - :广播操作:已从设备中完全删除现有的应用程序包。数据包含包的名称。这类似于ACTION_PACKAGE_REMOVED,,但仅在EXTRA_DATA_REMOVED为true且EXTRA_REPLACING为该广播的false时设置。
答案 1 :(得分:1)
如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由于某种原因不会每次都触发,我认为这是因为unintalled包没有任何extradata。需要更多的测试来证明这一点。