Android四大组件之BroadcastReceiver的使用

工作之余,有些闲功夫,想想还是总结一下基础知识,Android广播在项目中使用还是比较多的,相对于四大组件,可能仅次于Activity的使用。首先,我们得知道广播的作用:从字面意思上来看,广播就好比收音机通知收听者,同时也能携带广播信息。广播的种类可分为有序广播和无需广播,然而有序广播是有顺序之分,故也有优先级之分,利用广播的优先级我们也可以做很多事,比如短信拦截,来电骚扰都会使用到广播的优先级。

下面我没有介绍有序广播,只是简单的介绍如何注册和使用广播

注册分为两种:静态注册动态注册

《Android四大组件之BroadcastReceiver的使用》

、静态注册:<application></application>标签下

<receiver android:name=".CustomerXmlBroadCastReceiver">
    <intent-filter>
        <action android:name="com.yufs.action.xml"/>
    </intent-filter>
</receiver>

其中intent-filter为过滤器,action中name就好比广播的id,

使用:创建自己的Receiver继承BroadcastReceiver

public class CustomerXmlBroadCastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if("com.yufs.action.xml".equals(intent.getAction())){
            Toast.makeText(context, "====收到xml中注册发送过来的广播===", Toast.LENGTH_SHORT).show();
        }
    }
}

发送广播:

Intent intent=new Intent();  //用于传输数据的intent
intent.setAction("com.yufs.action.xml"); //为这个intent加上action,用于广播过滤器过滤
sendBroadcast(intent); //使用sendBroadcast发送广播

二、动态注册:代码中注册,一般在Activity中创建的时候

同样创建自己的Receiver继承BroadcastReceiver

public class CustomerBroadCastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //action与注册的时候保持一致
        if("com.yufs.action.customer".equals(intent.getAction())){
            Toast.makeText(context,"接收到动态注册发送过来的广播", Toast.LENGTH_SHORT).show();
        }
    }
}

注册:

mReceiver=new CustomerBroadCastReceiver();//实例化广播
//创建过滤器对象
IntentFilter mFilter=new IntentFilter();
mFilter.addAction("com.yufs.action.customer");
//注册
registerReceiver(mReceiver,mFilter);

发送广播:

Intent intent=new Intent();
intent.setAction("com.yufs.action.customer");
sendBroadcast(intent);

解注册:

if(mReceiver!=null){
    unregisterReceiver(mReceiver);
}

到此两种注册广播的方式可以简单的使用了,不过现在自己在项目中没有太多的用到,主要是有了EventBus3.0开源框架对事件总线优化,使用起来也方便,适用于快速开发

附上源码:

源码下载

    原文作者:Ikulm
    原文地址: https://blog.csdn.net/ikulm/article/details/70210749
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞