IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> android之广播机制介绍 -> 正文阅读

[移动开发]android之广播机制介绍

广播(Broadcast)是一种广泛用于应用程序之间传递消息的机制,是 Android系统的四大组件之一。广播机制包含3 个基本要素∶广播(Broadcast),用于发送广播;广播接收器(BroadcastReceiver),用于接收广播;意图内容(Intent),用于保存广播相关信息的媒介。

广播分为两个方面∶广播发送者和广播接收者(Broadcast Receiver),在 Android 系统中很多操作完成以后都会发送广播,比如说发送短信息、打出一个电话、开机或者网络状态改变和电量改变等。如果某些应用程序想要在这些操作完成以后做一些相应的处理,就可以对这些广播做接收。这个广播跟传统意义中的电台广播有些相似,只是传统电台广播发送的是语音而 Android系统发送的是目的意图 Intent。之所以叫广播,就是因为它与传统的广播很相似,只负责播放而不管接收者"听不听",也就不管接收方如何处理。

Android中的每个应用程序都可以对自己需要的广播进行注册,这样该程序就可以接收到自己需要的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。Android 提供了一套完整的 API,允许应用程序自由地发送和接收广播。

Android 中的广播按照发送类型可以分为两种:普通广播和有序广播。

●普通广播(Normal broadcasts)是一种完全异步执行的广播,效率较高,在广播发出之后,所有的广播接收者甚至可能会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。

● 有序广播(Ordered broadcasts)则是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收者能够收到这条广播消息,当这个广播接收者中的逻辑执行完毕后,广播才会继续传递。广播接收者是有先后顺序的,优先级高的广播接收者可以先收到广播消息,并且前面的广播接收者还可以截断正在传递的广播,使后面的广播接收者无法收到广播消息。

在开发中,广播一般会在下面几种情况下使用∶

● 同一App 内部的同一组件内的消息通信(单个或多个线程之间)。

● 同一App内部的不同组件之间的消息通信(单个进程)。

● 同一App 具有多个进程的不同组件之间的消息通信。

● 不同App组件之间的消息通信。

●Android系统在特定情况下与App 之间的消息通信。

在这里我们可以看到 Broadcast 也可以在不同 App 应用之间进行消息通信。如果我们开发一个应用就需要在允许的情况下自动填充短信中的验证码,那么这时要监听用户短信,短信和自己的 App 就处在不同的进程之间。Activity 和 Service 在某些情况下的通信也可以借助Broadcast,这时就是在同一进程不同组件之间的消息通信。

另外,需要注意的是,当我们通过广播接收者处理相应的广播时,不推荐进行任何耗时操作,因为在广播接收器中是不允许开启线程的,当 onReceive()方法运行了较长时间而没有结束时,程序就会报错。因此广播接收器更多的是扮演一种打开程序其他组件的角色,比如创建一条状态栏通知或者启动一个服务等。

源码下载地址:链接:https://pan.baidu.com/s/1ExoSxaQRdjmwUUnDuSbUIQ?提取码:43ka

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:52:58  更:2021-12-02 16:54:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:36:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码