本质:是一个系统全局的监听者,监听广播消息。
作用:实现了系统中不同组件之间的相互通信。
Broadcast的概念: 广播
*、 当系统发生事件的时候,就会发送出广播,广播本身并不知道有多少人关注自己、
*、 一个应用也可也发送出广播。
*、通过广播中的关键字段,系统将心还在哦啊所有关注这个广播的应用,并触发他们注册的Receiver
Broadcast Receiver 用来监听广播
向系统注册自己关系的广播,当广播发出后,系统会带起进程并 调用指定的方法执行代码
*、你可以在这个过程中启动Service,Activity
实现Broadcast Receiver :
*、继承Broadcast Receiver并重写onReceive方法,
onReceive(Context context ,Intent intent)
Context 你可以通过Context参数来完成工作, startActivity或是使用toast
intent ,广播中包含的数据都在intent参数中,
public class Receiver1 extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Toast. makeText(arg0, "tian", 1000).show();
}
}
*、向系统注册广播
通过xml静态注册 :与activity很类似
<receiver android:name= "Receiver1">
<intent-filter>
<action android:name="com.tian.receiver" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
通过代码动态注册
registerReceiver 注册广播监听
IntentFilter参数中设置关注的action
unregisterReceiver取消对广播的监听
//注册广播
BroadcastReceiver receiver = new Receiver1();//创建一个监听对象
IntentFilter filter = new IntentFilter("Receiver1");//创建receiver的action
registerReceiver(receiver, filter);
有序广播::::
*、广播注册时action有多个相同的 ,可以实现添加序列排序,使相同的广播有序执行。
常见的系统广播介绍: