第五章-广播

一、广播机制简介

  1、标准广播

      在广播发出之后,所有的接收器在同一时刻接收消息,无法截断

  2、有序广播

      广播发出之后,在同一时刻只有一个接收器收到消息,优先级高的广播接收器先收到消息,前面的广播可以截断后面的广播

二、接收系统广播

    广播接收器可以对自己感兴趣的广播进行注册,注册分为动态注册(在代码中注册)和静态注册(在Manifest.xml中注册)

    创建广播接收器:新建类,继承BroadcastReceiver并重写父类的onReceive()方法,当有广播来的时候onreceive就会得到执行

    动态注册的广播接收器一定要取消注册才行,在onDestory中调用unregisterReceiver()方法取消

    需要权限的需要在manifest.xml文件中声明<user-permission android:name="XXXXXX">

三、发送自定义广播

   1、标准广播

    Intent intent = new intent("com.example.broadcast.mybroadcast");

    sendBroadcast(intent)   由于广播实在intent中发送的,因此可以在广播中携带一些数据

   2、发送有序广播

    sendOrderedBroadcast(intent,null);

    设定优先级

      <intent-filter android:priority="100">

              中断广播继续传播

          abortBroadcast();

四、本地广播

    全部广播的安全性有问题,例如其他程序可能向我们的广播接收器发送垃圾广播,我们的广播携带的私密数据可能被截取等 。

    使用本地广播机制发出的广播只能在应用程序内部进行传播。

    使用LocalBroadcastManager 对广播进行管理

      Intent intent = new Intent("localhost");
      localBroadcastManager.sendBroadcast(intent);

    

 

    

 

posted @ 2018-08-26 20:24  _zhang_kai  阅读(179)  评论(0)    收藏  举报