Android BroadcastReveiver广播

本文介绍了Android中的三种广播类型:普通广播、有序广播和粘性广播,包括它们的特点和使用场景。普通广播无序且不能截断,有序广播可按优先级接收并能终止广播,而粘性广播允许广播在接收器注册后仍能接收到。注意在onReceive()中避免长时间操作以防止ANR,动态注册的广播在Activity关闭后会失效,而静态注册则不受此限制。
摘要由CSDN通过智能技术生成

广播类型

普通广播,通过Context.sendBroadcast(Intent myIntent)发送的
- 所有监听该广播接受者都可以监听到该广播
- 同级别接收先后顺序是随机的(无序)
- 级别低的后收到广播
- 接收器不能截断广播的继续传播,也不能处理广播
- 同级别动态注册高于静态注册

有序广播,通过Context.sendOrderedBroadcast(intent, receiverPermission)发送的
- 按照接收者的优先顺序来接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大优先级越高,可以终止广播的继续传播,接受者可以修改intent的内容。
- 同级别接收顺序是随机的
- 级别低的后收到
- 能截断广播的继续传播,高级别的广播接收器接收广播后能决定是否截断。
- 能处理广播
- 同级别动态注册高于静态注册

异步广播 (粘滞性滞留广播),通过Context.sendStickyBroadcast(Intent myIntent)发送的,
还有sendStickyOrderedBroadcast(intent, resultReceiver, scheduler, initialCode, initialData, initialExtras)方法
ps:已被弃用
- 不能处理结果给下一个接收者,无法终止广播。
- 一直存在
- 可以先发送广播,再注册接收器
- 需要添加android.permission.BROADCAST_STICKY权限
- 收并处理完Intent后,广播依然存在,直到你调用removeStickyBroadcast(intent)主动把它去掉

发送广播:

//在清单文件中配置广播优先级
<receiver android:name="MyReceiver1" >  
    <intent-filter android:priority=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值