android 学习笔记 第四章 广播

第四章 广播(Broadcast)

标准广播: 异步执行,每一个接收器几乎在同一时刻接收到广播
有序广播: 同步执行,呗接收器有序接收,并且可以被截断
ss

1.注册广播接收器

a. 动态注册(在代码中注册,必须程序启动之后才能接收到广播)
  创建一个类,使其继承自 BroadcastReceiver
  然后接收到广播时,该类的 onReceive 方法得到执行
  创建类之后,需要设置接收广播的类型,然后对其进行注册 调用 registerReceiver()
  接收两个值,一个是需要监听的广播,另一个是受到这个广播之后的操作
  最后,在Activity 销毁时,注意将接收器注册取消
  调用 unregisterReceiver() 一个参数,注册时使用的操作的对象

b. 静态注册(在 AndroidManifest.xml 文件中注册
  可以在程序未启动的时候调用广播
  与 Activity 注册方式类似,使用 receiver 标签进行注册
  通过 name 属性指定操作实体类

2. 发送广播

a. 标准广播
  新建一个Intent 对象,将要发送的广播的放进去
  然后使用 Context 的 sendBroadcast(intent) 接受一个包含广播的 Intent 对象

b. 有序广播
  使用 sendOrderBroadcast 发送有序广播接受两个参数,第一个为Intent 第二个为权限相关
  然后可以在 注册接收器的时候在 intent-filter 标签内使用 priority 属性进行优先级设置
  然后可以在高优先的onreceive 函数中使用abortBroadCast() 阻止广播的继续传递

3. 使用本地广播(防止数据泄密,使广播只在自己的应用程序中进行传播)

使用LocalBroadcastManager 来对广播的注册,发送,接收,注销进行管理即可
首先通过LocalBroadcastManager 静态方法 getInstance 获得管理者实例
然后分别调用这个实例的对应方法即可

优点:安全,不用担心别人将垃圾数据放到自己接收器中,没有安全隐患,更加高效

FirstCode 郭霖
整理:tadecather 17/6/30

你可能感兴趣的:(android 学习笔记 第四章 广播)