Android中的广播使用小结
(1)实现一个动态广播接收器
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
abortBroadcast();
}
}复制代码
intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
myBroadcastReceiver = new MyBroadcastReceiver();
registerReceiver(myBroadcastReceiver, intentFilter);复制代码
(2)实现一个静态广播接收器
<receiver
android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>复制代码
(3)发送广播
Intent intent = new Intent("android.net.conn.CONNECTIVITY_CHANGE");
sendBroadcast(intent); // 发送广播复制代码
(4)注销广播
unregisterReceiver(myBroadcastReceiver);
分析:从使用上来看,需要分析一下BroadcastReceiver和IntentFilter源码,需要分析函数ContextImpl.registerReceiver和ContextImpl.sendBroadcast以及ContextImpl.unregisterReceiver源码。
- A.BroadcastReceiver
- B.IntentFilter
- C.ContextImpl.registerReceiver
- D.ContextImpl.sendBroadcast
- E.ContextImpl.unregisterReceiver