美文网首页
Android基础知识:Broadcast Receiver(1

Android基础知识:Broadcast Receiver(1

作者: JYangkai | 来源:发表于2018-12-30 10:29 被阅读0次

    废话

    Android中的广播和现实生活中的广播有点相似,还记得小学时候,每到星期二的下午4点,学校就会放广播通知全校老师去开会,而我们学生就放学了,每次只要听到广播,全校学生都跑回教室拿书包回家。

    学校的广播是对本校学生和老师发出的,老师和学生接收到广播后自己就处理自己的事情,老师去开会,学生回家,其实这和Android中的广播一样

    Android中可以自己发出广播,也可以是系统发出广播,注册了广播的接收者就在接收到广播后就会处理自己的逻辑,下面我们来学习下广播的用法

    定义一个广播接收器

    public class MyBroadcastReceiver extends BroadcastReceiver {
        
        @Override
        public void onReceive(Context context, Intent intent) {
            
        }
        
    }
    

    可以看到定义一个广播接收器非常简单,但是不要忘了在AndroidManifest.xml中注册

    <receiver android:name=".MyBroadcastReceiver"
        android:enabled="true"
        android:exported="true"/>
    

    这样,我们的广播接收器就注册完成了

    这样注册广播的方式为静态注册,还有一种方式是动态注册,是以内部类的形式去注册

    发出广播

    我们注册完广播接收器,需要接收广播,那么接收何种广播,广播又怎么发出呢,其实很简单,同样需要构建一个Intent

    Intent intent=new Intent("yk.demo.send");
    sendBroadcast(intent);
    

    这样就可以发出广播了

    注册广播

    我们发出了广播之后怎么注册呢,其实也很简单,只需做如下修改

    <receiver android:name=".MyBroadcastReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="yk.demo.send"/>
        </intent-filter>
    </receiver>
    

    这样就注册了"yk.demo.send"这个广播

    接收广播

    我们注册了广播在哪里处理呢

    我们可以看到刚才注册的广播接收器中有一个onReceive方法,我们就在这里进行处理

    @Override
    public void onReceive(Context context, Intent intent) {
    
    }
    

    onReceive里面处理接收到广播后的逻辑

    Android系统的很多操作和变化都会发出广播,比如点亮、屏幕、时间区域、关机、开机等,我们可以注册系统的广播,然后处理我们想处理的事情。

    相关文章

      网友评论

          本文标题:Android基础知识:Broadcast Receiver(1

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