以前一直使用静态广播去监听应用安装、卸载等应用,最近从新优化性能,所有应用不需要监听开机广播的,全部取消掉。
没必要使用静态广播的全部取消掉,拿开机广播来说,会影响开机时间,如果监听开机广播的应用比较多,开机广播会拉起
每一个注册自己的应用,而且是一个一个应用去初始化Application的,是一个阻塞的过程。所以要求能使用动态广播就用
动态广播。
网上好多资料都是静态监听安装广播的,因为在Launcher和SystemUI状态栏中就可以使用动态广播去处理。
这边直接提供动态广播注册demo:
private void iniTest( ) {
receiver = new TestReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.PACKAGE_ADDED");
intentFilter.addAction("android.intent.action.PACKAGE_REPLACED");
intentFilter.addAction("android.intent.action.PACKAGE_REMOVED");
**intentFilter.addDataScheme("package"); //不添加则收不到广播**
registerReceiver(receiver,intentFilter);
}
class TestReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.e("TestReceiver","receover = "+intent.getAction());
}
}