Broadcast
分类1
静态注册广播:<receiver>标签注册
- 有效期:随应用程序存在
- 控制:一旦注册,则开机一直运行
- 资源:由于无法手动关闭,相对较费资源
- 使用场景:通常用于系统广播,以及跨应用程序
动态注册广播:代码内用registerReceiver的广播
- 有效期:registerReceiver()->unregisterReceiver()结束
- 控制:可由代码控制
- 资源消耗:由于可手动控制其生命周期,人为合理控制,可节省资源
生命周期
onreceive()结束后即结束,不能再内部进行服务绑定,会导致服务未运行完被杀死,函数内部处理也不应该超过10秒,否则会造成ANR
分类2
无序:sendBroadcast()
有序:sendOrderedBroadcast(),根据优先级决定收到的顺序,可拦截,修改,在receiver priority定义优先级(-1000-1000),值越大,优先级越高
LocalBroadcastManager
程序内的广播,不公开,其他程序无法调用,效率较高通过
获取实例用这个实例注册,发送广播
StickyOrderedBroadcast
粘性广播,需持android.permission.BROADCAST_STICKY权限,会一直滞留,直到有人注册
感觉要被骂啊,用的不多,有错误望不惜赐教,指正防止我坑别人