当前位置: 首页 > news >正文

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

文章目录

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

1. 概念介绍

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

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

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

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

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

2. 本地广播

  • 广播接收器的创建

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

public class MyLocalBroadcastReceiver extends BroadcastReceiver {@Overridepublic 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.lryc.cn/news/326777.html

相关文章:

  • Debezium日常分享系列之:Debezium2.5稳定版本之MySQL连接器配置示例和Connector参数详解
  • vue3父组件给子组件传值,并在子组件接受
  • Python爬虫如何快速入门
  • 酷开科技依托酷开系统用“平台+产品+场景”塑造全屋智能生活!
  • P8649 [蓝桥杯 2017 省 B] k 倍区间:做题笔记
  • LeetCode题练习与总结:旋转图像
  • 如何在家中使用手机平板电脑 公司iStoreOS软路由实现远程桌面
  • 【文献分享】myMUSCLE, a New Multiphysics, Multiscale Simulation Coupling Environment
  • 2024年云计算使用报告,89%组织用多云,25%广泛使用生成式AI,45%需要跨云数据集成,节省成本是云首要因素
  • 【Python操作基础】——序列
  • Vue 与 React:前端框架对比分析
  • 解决kubesphere流水线docker登陆错误http: server gave HTTP response to HTTPS client
  • macOS安装mongoDB(homebrew)
  • 免费SSL证书和付费SSL证书的区别点
  • 【SQL】1633. 各赛事的用户注册率(COUNT函数 表达式用法)
  • 【LVGL-使用SquareLine Studio设计器 】
  • 将二进制数a的每一位右移b位operator.rshift(a,b)
  • M芯片 mac配置Vulkan环境报错 Xcode
  • Day23:事务管理、显示评论、添加评论
  • 第一篇:概述、 目录、适用范围及术语 --- IAB/MRC《增强现实(AR)广告(效果)测量指南1.0 》
  • pytorch常用的模块函数汇总(2)
  • OpenAI奥特曼豪赌1.42亿破解长生不老
  • [晕事]今天做了件晕事29;iptables
  • 2018年亚马逊云科技推出基于Arm的定制芯片实例
  • 用搜索引擎收集信息-常用方式
  • Adobe推出20多个,企业版生成式AI定制、微调服务
  • 叁[3],NavigationDrawerViewsActivity新增Fragment
  • 备考ICA----Istio实验7---故障注入 Fault Injection 实验
  • [flask]异常抛出和捕获异常
  • js逆向之实例某宝热卖(MD5)爬虫