Android 覆盖安装会同时发送remove和replace的解决方案

有一些需求,在软件卸载的时候做一些动作,但是我最近发现,在5.1上,覆盖安装的时候会发remove和replace两种intent,这样会导致功能异常,解决方案有2

  1. Intent.EXTRA_REPLACING
if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {
            String packageName = intent.getData().getSchemeSpecificPart();
            boolean booleanReplacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
            LogUtils.e("booleanReplacing:" + booleanReplacing);
            LogUtils.e("remove:" + packageName);
            if (!booleanReplacing) {
                //这里是真正的卸载
            }
        }

2.监听Intent.ACTION_PACKAGE_FULLY_REMOVED
这个广播是应用被卸载,数据被时才会发,所以,这是真正的被卸载的时候会发的。

    原文作者:超威蓝猫l
    原文地址: https://www.jianshu.com/p/7c9f38dbf5fe
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞