广播Broadcast

一、前言

1.1、生活中的广播

例如上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接人到学校的广播室的,一旦有什么重要的通知,就会播放一条广播来告知全校的师生。

1.2、计算机中的广播

类似上述的工作机制其实在计算机领域也有很广泛的应用,如果你了解网络通信原理应该会知道,在一个IP网络范围中,
最大的IP地址是被保留作为广播地址来使用的。

比如某个网络的IP范围是192.168.0.XXX,子网掩码是255.255.255.0,那么这个网络的广播地址就192.168.0.255。

广播数据包会被发送到同一网络上的所有端口,这样在该网络中的每台主机都将会收到这条广播。

1.3、Android的四大组件之一

为了便于进行系统级别的消息通知,Android 也引入了一套类似的广播消息机制。相比于前面举出的两个例子,Android 中的广播机制会显得更加灵活。

二、广播机制简介

为什么说Android中的广播机制更加灵活呢?

这是因为Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。

Android提供了一套完整的API,允许应用程序自由地发送和接收广播。发送广播的方法其实,就是借助Intent。

而接收广播的方法则需要引人一个新的概念——广 播接收器( Broadcast Receiver )。

2.1、标准广播

标准广播( Normal broadcasts) 是种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截断的。

标准广播的工作流程图,如下:
在这里插入图片描述

2.2、有序广播

有序广播(Ordered broadcasts )则是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。

所以此时的广播接收器是有先后顺序的,优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了。

有序广播的工作流程如下所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值