您的位置:首页 > 其它

Broadcast机制

2012-01-14 17:14 155 查看
特点:数据的发送方只负责发送数据,数据如何接收如何处理都有接收方决定。

在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 电池电量低时触发

……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: