Android中的本地广播与全局广播

文章目录

  • 1. 概念介绍
  • 2. 本地广播
  • 3. 全局广播

1. 概念介绍

前文我们介绍了Android中的广播,按注册方式分为静态广播和动态广播;按接收顺序分为有序广播与无序广播
本文我们按照广播的传播范围,将广播分为本地广播全局广播

  • 本地广播,仅在本App内部传播,其他App收不到,保证了数据的安全性。

  • 全局广播,可以在整个手机所有App之间传播,会有安全性问题。普通广播默认就是全局广播。

    注:本地广播只能采用动态注册方式,不能使用静态注册。
    因为静态注册是为了在APP未启动时发挥作用的,而本地广播传播在应用内部,应用肯定已经启动了,静态注册也就没有意义了。

综上,我们创建一个普通的广播,默认就是无序、全局的广播。

2. 本地广播

  • 广播接收器的创建

广播接收器的创建与正常广播一样,继承BroadcastReceiver。

public class MyLocalBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(TAG, "onReceive: 收到了本地广播");
    }
}

  • 广播接收器注册

只能使用动态注册的方式。这里用到了一个类: LocalBroadcastManager

注: LocalBroadcastManager 位于androidx.localbroadcastmanager:localbroadcastmanager:1.1.0 中,如果引用不到,需要手动添加该依赖。

LocalBroadcastManager 已经被官方废弃,此处仅作了解。见https://developer.android.google.cn/jetpack/androidx/releases/localbroadcastmanager

LocalBroadcastManager的实例化:

LocalBroadcastManager mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);

注册广播接收器:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("local_broad_cast");
mLocalBroadcastManager.registerReceiver(mLocalBroadcastReceiver, intentFilter);
  • 解除注册
@Override
protected void onDestroy() {
    super.onDestroy();
    mLocalBroadcastManager.unregisterReceiver(mLocalBroadcastReceiver);
}
  • 发送本地广播
 Intent intent = new Intent();
intent.setAction("local_broad_cast");
mLocalBroadcastManager.sendBroadcast(intent);

3. 全局广播

前面学习到的普通广播默认就是全局的,可以被其他app接收到,不再赘述。

以上就是本地广播与全局广播的区别和用法了,感谢支持~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打造核心竞争力:高效Web系统数据中台的设计与实践_光点科技

在数字化的浪潮中,数据已经成为企业赖以生存和发展的核心资源。一个高效的Web系统数据中台,能够赋予企业在激烈的市场竞争中立于不败之地的能力。本文将深入探讨如何设计和实施一个能够提升企业数据管理水平和支持业务决策的高效数据中台架构。 数据中台…

基于Python实现多功能翻译助手(下)

为了将上述步骤中的功能增强与扩展具体化为代码,我们将实现翻译历史记录功能、翻译选项配置以及UI的改进。 翻译历史记录功能 import json # 假设有一个用于存储历史记录的json文件 HISTORY_FILE translation_history.json # 初始化历史记录列表 translati…

数组---

1、数组的定义 Java中,数组存储固定大小的同类型元素。 数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一的管理。 数组的特点: 数组本身是引用数据类型,但数组中的…

Spring使用(一)注解

Spring使用 资源 Spring 框架内部使用 Resource 接口作为所有资源的抽象和访问接口,在上一篇文章的示例代码中的配置文件是通过ClassPathResource 进行封装的,ClassPathResource 是 Resource 的一个特定类型的实现,代表的是位于 classpath …

vue3+Pinia的使用 - 封装

目录: persist.ts 可存储到本地 import { PersistedStateOptions } from "pinia-plugin-persistedstate";/*** description pinia 持久化参数配置* param {String} key 存储到持久化的 name* param {Array} paths 需要持久化的 state name* return per…

基于Transformer的医学图像分类研究

医学图像分类目前面临的挑战 医学图像分类需要研究人员同时具备医学图像分析和数字图像的知识背景。由于图像尺度、数据格式和数据类别分布的影响,现有的模型方法,如传统的机器学习的识别方法和基于深度卷积神经网络的方法,取得的识别准确度…

2024第六届环境科学与可再生能源国际会议能源 (ESRE 2024) 即将召开!

2024第六届环境科学与可再生能源国际会议 能源 (ESRE 2024) 即将举行 2024 年 6 月 28 日至 30 日在德国法兰克福举行。ESRE 2024 年 旨在为研究人员、从业人员和专业人士提供一个论坛 从工业界、学术界和政府到研究和 发展,环境科学领域的专…

Kubernetes 知识体系 系列一

多年前,大多数软件应用程序都是大型的单体,要么作为单个进程运行,要么作为少数服务器上的少量进程运行。这种过时的系统一直延续很久。 它们的发布周期较慢,更新相对较少。 在每个发布周期结束时,开发人员将整个系统…

算法第三十四天-有效数独

有效数独 题目要求 解题思路 一个简单的方法是,遍历9*9书读三次,以确保: 行中没有重复的数字列中没有重复的数字3*3子数独中没有重复的数字 但是,实际上,所有的一切都以可以在一次迭代中完成 可以使用box_index (r…

网约车APP小程序源码代驾顺风拼车货运司乘端安卓苹果源码可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 一、详细介绍 系统是基于Thinkphpuniapp开发的,全开源未加密,这套源码可以拿回去自己做二开 后台用户端司机端 功能详情介绍: 车主实名认证,驾驶证认证,车…

Python列表、元组、字典及集合

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、列表定义方式: 二、元组1、定义方式:2、元组中的物理存储地址不可修改,如果修改则会报错,但是元组中的列表、字典项等却可以…

代码随想录算法训练营第三十七天 | 738. 单调递增的数字、968. 监控二叉树

代码随想录算法训练营第三十七天 | 738. 单调递增的数字、968. 监控二叉树(待刷) 738. 单调递增的数字题目解法 968. 监控二叉树(待刷) 738. 单调递增的数字 题目 解法 class Solution { public:int monotoneIncreasingDigits(in…

File和IO流

1. File类常用方法 1.1 获取基本属性 • public String getName() :获取名称 • public String getPath() :获取路径 • public String getAbsolutePath():获取绝对路径 • public File getAbsoluteFile():获取绝对路径表示…

嵌入式培训3-28

编写一条学生链表&#xff0c;写一些能够像链表里边添加数据的函数 实现&#xff1a;将链表中的所有内容保存到文件中去 以及 读取文件中的所有内容&#xff0c;加载到链表里面 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ma…

AD学习笔记

1. EOS 选择中心点 2. PDL 标记距离 3. 选择线框&#xff0c;按DSD重新定义板框 4. su框选&#xff0c;sl线选 5. mx x/y轴移动 6. dk 打开层叠管理器 7. shifts单层显示 8. 单端引脚不报错&#xff0c;CO工程选项下关闭报错即可。 9. PCB界面中寻找元件&#xff1a;…

蓝桥杯 - 小明的背包3(多重背包)

解题思路&#xff1a; 动态规划 多重背包问题需要在01背包问题&#xff08;不重复&#xff09;的基础上多加一层循环进行遍历&#xff0c;并且dp[ j ]的式子也需要修改 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan …

【JavaSE】网络编程

定义&#xff1a;在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行的数据传输 常见的软件架构&#xff1a; C/S&#xff1a;Client/Server&#xff08;客户端/服务器&#xff09; 在用户本地需要下载并安装客户端程序 画面可以很精美&#xff0c;用户体…

【面试经典 | 150】单词拆分

文章目录 Tag题目来源解题思路方法一&#xff1a;动态规划 写在最后 Tag 【动态规划】【字符串】 题目来源 139. 单词拆分 解题思路 方法一&#xff1a;动态规划 定义状态 定义 dp[i] 表示字符串 s 前 i 个字符组成的字符串&#xff08;s[0, ..., i-1]&#xff09;是否能被…

7.JDK下载和安装

文章目录 一、下载二、安装三、JDK的安装目录介绍 写JAVA代码不是随随便便能写的&#xff0c;我们得先做一点准备工作。例如&#xff0c;我们平时想要玩一把游戏&#xff0c;就需要先下载、安装才能玩游戏。JAVA也是一样的&#xff0c;也是需要下载并安装相关的软件&#xff0c…

2010-2021年银行网点及员工信息数据

2010-2021年银行网点及员工信息数据 1、时间&#xff1a;2010-2021年 2、来源&#xff1a;整理自csmar 3、指标&#xff1a;银行代码、股票代码、银行中文简称、统计截止日期、分行数量、机构网点数量、其中&#xff1a;境内网点数量、其中&#xff1a;境外网点数量、在职员…