特点:数据的发送方只负责发送数据,数据如何接收如何处理都有接收方决定。
在android中发生的就是是各种事件
简述:一,先注册广播接收对象。
二,安卓操作系统产生一个事件时(如接到一个电话),或者自定义发送的广播。(这些事件都是一个intent对象)
三,通知各Broadcast Receiver,Broadcast Receiver判断该事件是否它要处理的事件,然后进行相应处理。
四,事件(intent对象)和filter对象都有action属性,只有两者对上了才能允许intent通过。
五,BroadcastReceiver的生命周期:onReceiver调用结束,生命周期结束。
ps:intent里面的action和data的关系:比如洗衣服,洗脸。action是动作,data是对象。同一个动作不同对象处理方式也不一样。
广播发送方Intent intent=new Intent();
intent.setAction(Intent.ACTION_EDIT);
sendBroadcast(intent);
广播接收器要extends BroadcastReceiver ,然后覆写public void onReceive(Context context, Intent intent){ } 方法
BroadcastReceiver 注册:
一,在清单文件中注册:
<receiver android:name=".receiver">
<intent-filter >
<action android:name="android.intent.action.EDIT"/> //该接收器接收什么事件就在这里定义
</intent-filter>
</receiver>
//特点:无论程序开或关,该接收器都能接受相应的广播
二,在应用程序代码中注册:
receiver=new BroadcastReceiver(); //生成一个接收器对象,另一个类
IntentFilter filter=new IntentFilter(); //生成一个过滤器对象
filter.addAction(android.provider.); //为过滤器增添action
registerReceiver(receiver, filter)
//参数一是一个接收器,参数二是该接收器的过滤器
unregisterReceiver(receiver);
//特点:若写在onCreat()中,在activity可见的时候注册,在其不可见的时候取消注册,节省了资源
Android内置的Broadcast Action (各种手机系统事件)
ACTION CAMERA BUTTON 按下照相机按钮就会触发
ACTION BARRERY LOW 电池电量低时触发
……