顾名思义,BroadcastReceiver是广播的意思,是一种可以接受系统各应用程序发出来的广播,进而尽行相应的接收操作的一种全局监听器。
调用BroadcastReceiver的步骤是:
1、自定义广播,在主清单文件中进行相应的配置
2、通过意图启动广播
3、自定义广播类继承BroadcastReceiver,并且复写onReceiver()方法
广播和Activity的区别:在使用意图寻找广播中,如果广播没有被找到,程序不会异常终止,而如果是Activity,程序将会异常终止。
1、自定义广播
<receiver android:name=".MyBroadCast" >
<intent-filter android:priority="100">
<action android:name="my_receiver.My_Broad_Cast"/>
</intent-filter>
</receiver>
2、通过意图启动广播
Intent intent=new Intent();
//指定启动哪个广播
intent.setAction("my_receiver.My_Broad_Cast");
intent.putExtra("name","yupeibiao");
//发送广播请求
sendBroadcast(intent);
3、实现BroadcastReceiver,复写onReceive方法
public class MyBroadCast extends BroadcastReceiver{
public void onReceive(Context context,Intent intent)
{
String name=intent.getStringExtra("name");
Toast.makeText(this,"广播开启:By"+name,0).show();
}
}
这样就形成一个完整的广播的定义,广播的复写,广播的接收的设置。
广播也是有优先级的,我们可以在主清单中配置设定
只需要增加一个优先级的设定即可
//在过滤器中增加优先级,priority越高,优先级越高
<intent-filter android:priority="100">
优先级的作用
广播分为两种,一种是**有序广播**sendOrderBroadcast,一种是无序广播,普通的广播都是无序广播,也就是只要是符合的都可以收到信息,但是如果是有序广播的话,会按照广播的优先级,进行发送,优先级高的可以通过abortBroadcast进行拦截,拦截之后广播不会继续向低一级的传播