1.无序广播
就是我们普通的广播,接收者接收无序广播没有优先级之分,并且无序广播不可以被拦截,接收者之间不能传递数据。
2.有序广播
接收者接收有序广播有优先级之分,有序广播可以被接收者拦截、修改。例如广播接收者A和B,A的优先级高于B,则广播会先发送到A,A可以拦截广播停止传播,一旦拦截后面的接收者将不会收到广播,而且A可以根据广播的数据内容给B发送数据,B也可以接收A的数据。
1.我们定义俩个广播接收者类,在第一个接收者中拦截广播:
public class Receiver1 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String name = intent.getStringExtra("name");
Log.e("Receiver1", name);
//拦截广播
abortBroadcast();
}
}
public class Receiver2 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String name = intent.getStringExtra("name");
Log.e("Receiver2", name);
}
}
2.在activity中注册广播接收者,设置优先级ÿ