广播作为Android四大组件的一员,在整个系统中扮演者很重要的角色。
广播注册的方式分为两种,静态注册和动态注册。
1、静态注册
直接在AndroidManifest.xml里通过标签声明。
使用示例
android:name=".util.jiguang.JPushReceiver"
android:enabled="true"
android:exported="false">
当应用启动时,系统会自动实例化JPushReceiver类,并注册到广播系统中,这个步骤由系统自动完成。
静态注册广播的特点是:广播常驻后台,不会随着其他组件的消亡而变化。这样的话不仅占用内存,而且会增加应用的耗电量。
2、动态注册
在代码中调用Context.registerReceiver()方法完成注册。为了避免内存泄漏,当广播不再使用时,开发者需要手动注销广播。
使用示例
/*****注册广播*****/
// 1. 实例化BroadcastReceiver子类 & IntentFilter
JPushReceiver mBroadcastReceiver = new JPushReceiver();
IntentFilter intentFilter = new IntentFilter();
// 2. 设置接收广播的类型
intentFilter.addAction("XXX");
// 3. 动态注册:调用Context的registerReceiver()方法