Android学习笔记:广播(Broadcast)

本文详细介绍了Android中的BroadcastReceiver,包括广播的分类(标准广播、有序广播、粘性广播),注册广播的方式(动态注册与静态注册),发送广播的类型,本地广播的概念及其与全局广播的区别,以及广播的使用场景和注意事项。强调了广播接收器不适合执行耗时操作,避免在主线程中执行,并注意保护广播中的敏感信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分类

BroadcastReceiver是一种全局监听器,用来实现系统中不同组件之间的通信。 有时候也会用来作为传输少量而且发送频率低的数据,但是如果数据的发送频率比较高或者数量比较大就不建议用广播接收者来接收了,因为这样的效率很不好,因为BroadcastReceiver接收数据的开销还是比较大的。

  • 标准广播(无序广播/异步)
    ①是一种完全异步执行的广播,在广播发出后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序。
    ②无序广播不可以被拦截,若被拦截,则会报错。
    ③无序广播的广播接收者之间不能相互传递数据。
    ④该广播是调用sendBroadcast()方法来发送广播的。

  • 有序广播(同步)
    ①是一种同步执行的广播,在广播发出后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。
    ②优先级高的接收器可截断广播。
    ③在相同优先级下,广播接收者接收的顺序要看接收者在清单文件中声明的顺序,先声明的接收者比后声明的接收者要先接收到广播。
    ④有序广播的广播接收者之间可以互相传递数据。
    ⑤该广播是调用sendOrderedBroadcast()方法来发送广播的,同时也可以调用abortBroadcast()方法来拦截该广播。

  • 粘性广播
    ①调用sendStickyBroadcast()方法来发送该类型的广播信息。
    ②这种的广播的最大特点是,当粘性广播发送后,最后的一个粘性广播会滞留在操作系统中。如果在粘性广播发送后的一段时间里,如果有新的符合广播的动态注册的广播接收者注册,将会收到这个广播消息,虽然这个广播是在广播接收者注册之前发送的。
    ③对于静态注册的广播接收者来说,这个等同于标准广播。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值