Android广播基础概念
2019-10-17 本文已影响0人
我说的这句话是谎话
定义
广播:是一个全局的监听器
分为两个角色:广播发送者、广播接收者
作用
监听/接收应用App发出的广播消息,并作出相应。
应用场景
- Android不同组件之间的通信(含应用内/不同应用之间)
- 多线程通信(多进程通信?)
- 与Android 系统在特定情况下的通信(系统广播?)
实现原理
使用设计模式中的 观察者模式:
基于消息的发布/订阅 事件模型。
注册方式
-
静态注册
AndroidManifest
-
动态注册
Context.registerReceiver()
特别注意
对于动态广播,有注册必须要有注销,否则会导致内存泄露。
重复注册、重复注销也不允许
广播的类型
-
普通广播(Normal Broadcast)
interfilter / action
-
系统广播(System Broadcast)
-
有序广播(Ordered Broadcast)
发送出去的广播被广播接收者按照顺序接收
- 特点
- 接收广播按顺序接收
- 先接收的广播接收者可以对广播进行截断,即后面接收的广播接收者不再接收到此广播
- 先接收的广播这可以对广播进行修改,即后面接收的广播接收者将接收到被修改后的广播
- 特点
-
App应用内广播(Local Broadcast)
- 应用场景
- 其他App针对性发出与当前App inter-filer 相匹配的广播,由此导致当前App不断接收广播并处理
- 其他App注册与当前App一致的inter-filer用于接收广播消息,会出现安全性&效率性的问题
使用LocalBroadcastManager
- 应用场景