最近想在acitvity里动态注册一个广播接收器,来监听应用卸载的广播,但是写了之后一直收不到应用卸载的广播。最后查到的原因是:
动态注册写filter的时候,要加一行
filter.addDataScheme("package");
在acitivity中一般是onCreate()中进行动态注册,但是在activity退出时在onDestroy()中要反注册,不然会有内存泄漏风险。
>BroadcastReceiver installedReceiver = new BootReceiver();
> IntentFilter filter = new IntentFilter();
> filter.addAction("android.intent.action.PACKAGE_ADDED");
> filter.addAction("android.intent.action.PACKAGE_REMOVED");
> filter.addDataScheme("package");
> this.registerReceiver(installedReceiver, filter);