移动应用开发-第8章广播机制

广播是一种运用在组件之间传递消息的机制。如果要接收并过滤广播中的信息,则需要使用BroadcastRecciver(广播接收者)。

8.1广播机制的概述

Android中的广播机制更加灵活,因为Android中每个应用程序都可以根据自己的需要对广播进行注册,所以该程序只会接收自己关注的广播内容,这些广播可能是Android系统发送的,也可能是其他应用程序发送的。

Android中的广播机制用于进程或线程间通信。该机制使用了观察者模式。在该模式下,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时会主动发出遍知。

广播机制的实现流程:

①广播接收者是通过Binder机制在AMS(处理中心)中进行注册的。

②广播发送者是通过Binder机制向AMS发送广播。

③AMS查找到符合相应条件的广播接收者,会将广播发送到相应的消息循环队列中。

④程序执行消息循环时会获取到此广播,并会回调广播接收者中的onReceive()方法进行相关的处理。

8.2广播接收者

1,当Android系统产生一个广播事件时,可以有多个对应的BroadcastReceiver接收并进行处理,这些广播接收者只需要在清单文件或代码中进行注册并指定要接收收广播事件,然后创建一个继承了BroadcastReceiver的类,在该类中重写onReceive()方法,并在onReceive()方法中对广播事件进行处理。

2,创建广播接收者:

①第一种创建方式。继承BroadcastReceiver,重写onReceive()方法。

②第二种创建方式。选中BroadcastReceiver应用程序的包。

3,注册广播接收者:分为动态注册和静态注册。动态注册是在Activity中通过代码注册广播接收者,静态注册是在清单文件中通过配置广播接收者完成注册。动态注册的广播接收者是否被注销依赖于注册广播的组件。

8.3自定义广播与广播的类型

8.3.1自定义广播

当系统提供的广播不能满足实际需求时,可以自定义广播。代码:

Intent intent=new Intent();

intent.setAction(……);//定义广播的事件类型

sendBroadcast(intent);//发送自定义广播

广播的事件类型可以调用setAction()方法自己定义。

8.3.3广播的类型

①无序广播:完全异步执行的,发送广播时,所有监听这个广播的广播接收器都会接收到此广播消息,但接收和执行的顺序不确定。效率高,无法被拦截。

②有序广播:按照广播接收者声明的优先级别被依次接收,发送广播时,只会有一个广播接收者能够接收此消息,当在此广播接收者中逻辑执行完毕之后,广播才会继续传递。效率低,有先后顺序,可被拦截。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像处理:Python使用OpenCV 减少图片噪音

文章目录 1. 均值滤波 (Mean Filtering)2. 高斯滤波 (Gaussian Filtering)3. 中值滤波 (Median Filtering)4.代码实现示例5.效果展示 在图像处理中,均值滤波、高斯滤波和中值滤波是三种常用的降噪方法。它们的实现原理各有不同: 1. 均值滤波 (Mean Filte…

scp 命令如何不用输入密码实现拷贝

scp 命令如何不用输入密码实现拷贝 前言sshpass 安装sshpass 参数场景测试 前言 个人内网环境使用,不考虑安全问题。此处,使用 sshpass 。 sshpass 是一个用来非交互式地提供密码给 ssh 的工具。这对于自动化脚本非常有用,尤其是当你需要在…

Object类hashCode方法和equals方法源码

hashCode方法 顶级类Object里面的方法,所有类都是继承Object的,返回值int类型 根据一定的hash规则(存储地址、字段、或者长度等),映射成一个数值,即散列值 public static int hashCode(Object a[]) {if (a…

High-variance latent spaces

“High-variance latent spaces” 这个术语通常出现在机器学习和人工智能领域,特别是在涉及到生成模型、表示学习和特征学习的时候。在这个上下文中,“latent space” 指的是一个多维空间,其中每个点代表输入数据的一个潜在表示或特征向量。这…

wps要会员才能把pdf分开,这不纯属智商税吗

我有一个文档 然后 我给你们写好了一个代码 from PyPDF2 import PdfReader, PdfWriterdef split_pdf(file_path, ranges, output_names):# Open the input PDF filewith open(file_path, rb) as pdf_file:reader = PdfReader(pdf_file)total_pages = len(reader.pages)if len…

【Python 可变参数定义和使用】

可变参数允许函数接受不定数量的参数。在Python中,有两种类型的可变参数:可变位置参数(*args)和可变关键字参数(**kwargs)。 可变位置参数 (*args) 使用*args可以传递任意数量的位置参数给函数。参数会被…

Cookie、Session、Token的关系和区别

关系 Session与Cookie:Session通常依赖于Cookie来工作。当服务器为客户端创建一个Session时,它会在服务器上存储与客户端相关的信息,并将一个唯一的SessionID通过Cookie发送给客户端。客户端在后续的请求中会携带这个Cookie(包含…

北航数据结构与程序设计查找与排序编程题

查找与排序编程题 单词查找(查找——基本题)排座位(简)a 单词查找(查找——基本题) 【问题描述】 从标准输入中读入一个英文单词及查找方式,在一个给定的英文常用单词字典文件dictionary3000.…

如何使用SQL工具批量执行SQL文件?(以MySQL和SQLynx为例)

目录 1. 配置MySQL数据源 2. 打开 SQL 文件 3. 执行 SQL 文件 4. 检查执行结果 5. SQL文件示例 6. 注意事项 7. 总结 在现代数据库管理和操作中,批量执行 SQL 文件在 MySQL 中显现出其巨大的价值和不可替代的作用。通过将多个 SQL 语句集成在一个文件中进行批…

MySQL安装教程,包含root账户密码的修改(绿色版安装)---超简单好用

1、下载(mysql-8.0.27-winx64) 2、下载地址:https://dev.mysql.com/downloads/mysql/ 3、已经将 mysql-8.0.27-winx64 文件放在了文章最后,有需要的自取(解压配置即可用)。 4、配置环境变量: 右键点击我的电脑->属性->高级系统设置->高级->环境变量->系…

FineReport报表

一、报表类型 模板设计是 FineReport 学习过程中的主要难题所在,FineReport 模板设计主要包括普通报表、聚合报表、决策报表三种设计类型。 官网: ‘‘报表类型简介- FineReport帮助文档 - 全面的报表使用教程和学习资料 ‘’ 二、聚合报表 2-1 介绍…

爬虫逆向实战(41)-某花顺登陆(Cookie、MD5、SHA256)

一、数据接口分析 主页地址:某花顺 1、抓包 通过抓包可以发现在登陆时,网站首先请求了pwdRangeCalcRegular.json、getGS两个接口,接着请求dologinreturnjson2进行登陆,但是此接口会返回请先完成滑块验证码校验的响应。然后网站…

C 语言通用MySQL 功能增删查改功能.

前提条件:Ubuntu 22.04.4 LTS、MSQL 8数据库 并且已经安装MySQL 8 开发库。如果没有安装,可以查考:C 语言连接MySQL数据库 项目要求: 1、完成MySQL数据库增删改查通用功能封装 2、编辑makefile 文件实现项目动态更新和快速编译 项目结构…

浏览器多次请求同一个文件让其不使用缓存

描述 调用接口,后台根据传入的不同参数对视频进行处理,处理完成的视频存放目录和文件名称完全固定 多次调用该接口并传入不同的参数,该结果视频可能已经变了,但是由于文件路径完全固定,浏览器会直接从缓存中读取&…

智慧公厕的五大好处:深圳光明源全面解析

智慧公厕通过集成现代智能技术和优化管理,显著提升了公共卫生设施的使用体验和管理效率。以下是智慧公厕的五大好处: 提升卫生条件: 自动感应设备:智能感应水龙头、洗手液机和干手器等设备减少了用户对设备的直接接触&#xff0…

【嵌入式开发】STM32+USB的快速开发

目录 一、概述 二、STM32+USB开发流程 2.1 建立新的工程 2.2 系统配置 2.3 时钟配置 2.4 操作系统 2.5 选择USB配置 2.6 在USB_HOST中选择支持的子类(class) 2.7 Clock 配置 三、注意事项 3.1 应用驱动配置 3.2 上电调试基础工作 一、概述 USB作为大家耳熟能详的…

20240621 每日AI必读资讯

🤖GPT-4 通过图灵测试!! 研究人员称人们在图灵测试中无法区分 GPT-4 和人类,圣地亚哥加州大学认知科学系的研究人员针对GPT 4复刻了图灵测试。 研究人员招募了500名参与者,与四个代理人:人类、1960年代的…

WebRTC系列实战-自定义RTP中的extension

文章目录 1. 新增extensionsId;1.1 新增自定义extension1.2 准备添加到sdp相关操作1.3 对header长度返回的修改:2. 自定义extesion的写入及注册到extensionMap中2.1 添加到RTPheader中2.2. 大小限制2.3. 是否注册限制2.4. 自定义extension注册需要修改的位置3.接收端解析及注…

龙讯旷腾PWmat计算vdW异质结中热载流子冷却 | 复刻《Phys. Chem. Chem. Phys 》文献

01 NAMD 背景介绍 在各类光物理与光化学过程当中,均会牵涉到激发态载流子动力学过程,诸如电荷弛豫、复合以及输运等等。光激发或者电子注入将初始的平衡状态打破,所产生的热载流子在其演化进程中,会与原子核产生强烈耦合。此时&a…

Xshell 常用命令大全手册

Xshell 常用命令大全手册 文章目录 ls (列出文件)cp (复制文件)mv (移动和重命名文件)rm (删除文件和目录)cd (更改目录)mkdir (建立目录)more、less (查看文件内容)grep (搜索文件内容)vi (编辑文件)rz、sz (文件上传下载)cat (显示文件内容)ps (查看进程)kill (杀掉进程)top…