Android中广播(BroadcastReceiver)的详细讲解.
1. BroadcastReceiver的注册过程:
(1).广播消息发出来后,只有订阅了该广播的对象才会接收发出来的广播消息并做出相应处理。
**(2).**Android广播分为两个方面:广播发送者和广播接收者。Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。广播接收者通过Binder机制向AMS进行注册,AMS查找符合相应条件的Broadcastreceiver,将广播发送到BroadcastReceiver(一般情况下是Activity)相应的消息循环队列中。消息循环执行拿到此广播,回调BroadcastReceiver中的onReceive()方法。
(3).广播发送者和广播接收者的执行顺序是异步的,发出去的广播不会关心有无接收者的接收,也不确定接收者是什么时候能接收到。
2. BroadcastReceiver的步骤:
(1).注册广播:广播接收者在AMS中注册广播。
(2).发送广播:广播发送者向AMS中发送广播。
(3).接收广播:广播接收者拿到广播后调用onReceive()方法执行。
以下是一个发送短信的例子,代码如下:
BroadcastReceiverHelper 类:
package com.scd.broadcastreceiver.helper;
import com.scd.broadcastreceiver.activity.MainActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
/**
* 广播接收
*
* @author scd
*
*/
public class BroadcastReceiverHelper extends BroadcastReceiver {
/** 上下文 */
private MainActivity mActivity = null;
public BroadcastReceiverHelper(MainActivity mContext) {
super();
mActivity = mContext