Broadcast - 广播
目录
- 机制
机制
应用程序可以监听或者发送 Broadcast 进行轻量级的沟通。
广播的分类
- 标准广播 - 一条广播多个接收器几乎同时收到
- 有序广播 - 一条广播按照优先级接收,可以被截断
接收广播(BroadcastReceiver)
- 通过BroadcastReceiver进行接收广播。
- 动态注册或者静态注册BroadcastReceiver
动态注册:灵活,只有app启动后才会开始接收广播
静态注册:app没有启动都会进行监听
例子:
- 动态注册监听网络变化
- 静态注册监听系统开机完毕,完成开机自启
源码包括3次更新:
- 动态注册Receiver
- 静态注册Receiver用于开机自启应用
- 自定义广播的发送与接受
有序广播
有序广播的用法和标准广播用法差不多。
sendOrderedBroadcast(intent,权限相关的字符串可以为null)
用于发送广播- 通过
Mainfest
文件注册Receiver
并且给予对应的接收广播的优先级android:priority="100"
,值越大,优先级越高。- 优先级高的
Receiver
收到广播后可以通过abortBroadcast()
来截断广播。
本地广播
顾名思义,广播只能在自身的app中内部传递。
使用:// 获取LocalBroadcastManager实例并发送广播 private LocalBroadcastManager lb = LocalBroadcastManager().getInstance(this) Intent intent = new Intent("action") lb.sendBroadcast(intent) // 后面就是动态注册Receiver进行监听咯