广播是一种组件之间交叉信息的交流方式,包括app内,app间以及系统范围内。
创建广播接收者
继承自BroadcastReceiver实现其onReceive方法即可。
注:广播虽然强大也有其限制的地方,运行在主线程,因此不可长时间处理堵塞的代码
注册广播接收者
- 声明式
AndoridManiftest.xml中声明<receiver/>组件。 - 代码式
IntentFilter filter = new IntentFilter();
//filter config
Context.registerReceiver(reciever, filter);
注销广播接收者
注销广播只针对代码注册的,声明式的广播由系统来管理
Context.unregisterReceiver(reciever)
发送广播
- sendBroadcast
发送一个Intnet广播 - sendBroadcastAsUser
需要权限INTERACT_ACROSS_USERS
指明广播所属的用户,暂时不向应用开放使用 - sendOrderedBroadcast
发送顺序广播,接手顺序由intent-filter的priority决定,-1000~1000 - sendStickyBroadcast
需要权限android.permission.BROADCAST_STICKY
广播发送后会保存起来,等到下次注册Receiver的时候自动发送。
出于安全原因,已被废弃。
网友评论