Broadcast机制

特点:数据的发送方只负责发送数据,数据如何接收如何处理都有接收方决定。

    在android中发生的就是是各种事件


简述:一,先注册广播接收对象。

           二,安卓操作系统产生一个事件时(如接到一个电话),或者自定义发送的广播。(这些事件都是一个intent对象)

       三,通知各Broadcast ReceiverBroadcast 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 电池电量低时触发

……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章