美文网首页
android---广播的简单介绍

android---广播的简单介绍

作者: 毹毹 | 来源:发表于2017-03-07 14:49 被阅读34次

    对于android的广播机制一直不是特别清楚,今日就来聊聊他到底有啥!

    1、分类

    android广播接收器(BroadcastReceiver)可以分为2大类

    标准广播:是完全异步执行的广播,小二理解为发散的那种,效率高,不可以拦截,没有顺序,各个广播接收器可以同时接收到。

    有序广播:是一种同步执行的广播,是有先后顺寻的,直线似的,可以拦截。优先级高的就可以优先收到消息。

    2、注册

    android四大组件都需要注册,只有广播有两种注册方式(动态代码注册,静态在AndroidManifest.xml中注册),其他三个在AndroidManifest.xml静态注册。

    3、创建广播接收器

    如何创建广播接收器?

    需要新建一个类,让他继承BroadcastReceiver,并且需要重写onReceive()方法。有广播到来时,onReceive()方法就会执行,具体的逻辑可以再该方法中处理。

    3、例子--实现一个检测网络变化发出的广播(动态注册实例)

    广播接收类

    classNetworkChangeReceicerextendsBroadcastReceiver {

    @Override

    public voidonReceive(Context context,Intent intent) {

    ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo info = manager.getActiveNetworkInfo();

    if(info !=null&& info.isAvailable()) {

    Toast.makeText(context,"网络可用,请继续!",Toast.LENGTH_LONG).show();

    }else{

    Toast.makeText(context,"网络不可用,请检查网络!",Toast.LENGTH_LONG).show();

    }

    }

    }

    接下来需要在活动onCreate()方法中,创建一个IntentFilter的实例,给他添加一个action("android.net.conn.CONNECTIVITY_CHANGE")的值,

    创建广播接收器的类的实例,然后调用

    registerReceiver(receicer,filter)进行注册。

    这样就可以了,记得需要在onDestriy()方法中调用unregisterReceiver(receicer);来取消注册的广播。

    因为动态注册的广播接收器一定都要取消才可以。

    相关文章

      网友评论

          本文标题:android---广播的简单介绍

          本文链接:https://www.haomeiwen.com/subject/xitmgttx.html