android 发送广播_从0系统学Android--5.2 发送广播

从0系统学Android--52 发送广播

v2-8a1811431df25b4282da8c4e1ec10ad0_b.jpg

v2-4d605e433ed51b356432125e9ccc8958_b.jpg

本系列文章目录:更多精品文章分类

本系列持续更新中…. 初级阶段内容参考《第一行代码》

5.3 发送自定义广播

前面已经学习了如何接受广播了,下面来学习如何发送自定义广播,广播类型分为:标准广播和有序广播,下面分别来说一下这两种广播如何发送。

5.3.1 发送标准广播

首先我们先创建一个广播接收器,用来接收我们发送的自定义广播。

用静态广播来实现

public class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context,"接收到了",Toast.LENGTH_SHORT).show();}
}<receiverandroid:name="com.example.firstcode.fifty_chapter.norboardcast.MyReceiver"android:enabled="true"android:exported="true"android:permission="no"><intent-filter><action android:name="com.my_broadcast"/></intent-filter></receiver>这里 action 里面写自己要发送的广播的名字就可以了

随便在一个页面添加发送代码:

      buttonSend.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("com.my_broadcast");sendBroadcast(intent);}});

需要注意一点,上面的这种做法在 Android 8.0前是好用的,在 8.0 后进行了限制,限制通过静态注册来接受隐式广播详见。 其实对于部分隐式广播也是可以的比如开机广播

通过这个限制我们可以得到解决办法有两种:

1.不通过静态注册接收器,通过动态注册就可以了

2.通过静态注册接收器,但是发送的广播不要是隐式的。

第一种很简单,就是动态注册,这里不演示了,演示第二种:

 buttonSend.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("com.my_broadcast");// 明确指明要此广播要发送给的组件intent.setComponent(new ComponentName(NetChangeActivity.this, MyReceiver.class));NetChangeActivity.this.sendBroadcast(intent);}});

由于广播是通过 Intent 来进行传递的因此我们可以通过 Intent 来携带一些数据。

5.3.2 发送有序广播

广播是一种跨进程的通信,也就是说可以让不同的应用程序进行通信

如何发送有序广播呢?

 NetChangeActivity.this.sendOrderedBroadcast(intent,null);

这样就是发送有序广播了,第二个参数是与权限有关,传入 null 就可以了

那么如何设置接收器接受的顺序呢?

  <intent-filter android:priority="100"><action android:name="com.my_broadcast.MY_BROADCAST"/></intent-filter>

通过 android:priority 来设置。同样接收器在接收到消息后也可以通过 abortBroadcast() 来截取广播,让后面的接收器无法再接受到这条广播。

5.4 使用本地广播

前面我们发送和接受的广播全部属于系统全局广播,也就是说这些广播可以被系统中的其他应用程序接收到,并且我们也可以接受到来自其他任何应用的广播。这样容易引起安全问题。

为了解决这个问题,Android 引入了一套本地广播机制,使用这个机制广播只能够在程序内部进行传递。其实实现很简单就是通过 LocalBroadcastManager 来对广播进行管理。

下面我们就来列几个方法就可以了

LocalBroadCastManager localBroadCastManager = LocalBroadCastManager.getInstance(this)// 获取实例
// 发送广播的时候
Intent intent = new Intent("com.broadcst.syd");
localBroadCastManager.senBroadCast(intent);// 注册广播接收器
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.broadcst.syd");
localBroadCastManager.registerReceiver(localReceiver,intentFilter);// 取消注册
localBroadCastManager.unregisterReceiver(localReceiver);

其实和之前动态注册发送都是一样的,只是换了一个类来执行而已。

本地广播是无法通过静态注册的 ,这很好理解,静态注册是为了让应用程序还没有启动就能接受广播,而发送本地广播的时候,程序肯定已经启动了,因此完全不需要静态注册了。

注意这里的本地指的是当前应用程序内

使用本地广播优势:

  • 明确的知道发送的广播不会离开我们的应用程序,不用担心泄漏信息。
  • 同样其他广播也无法发送到我们程序内部,不用担心有安全漏洞。
  • 发送本地广播比发送系统全局广播将会更加高效

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

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

相关文章

31页官方PPT,回顾史上最大芯片WSE:科技的壮丽美感!

来源&#xff1a;芯潮2019年8月20日&#xff0c;在Hot Chips顶会上&#xff0c;发布了一款震惊世界的芯片&#xff1a;全球有史以来最大的计算机芯片wafer-scale engine &#xff08;WSE&#xff09;问世&#xff01;这款巨型芯片来自美国创企Cerebras&#xff0c;每边约22厘米…

Node.js npm 详解

一、npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分&#xff0c;不过只介绍了linux平台&#xff0c;如果是其它平台&#xff0c;有前辈写了更加详细的介绍。 npm的全称&#xff1a;Node Package Manager. ####&#xff08;1&#xff09;通俗的理解 其实从字面意…

html怎么在图片上添加文字_Image J基础操作:给图片添加文字和标注

对图片添加标注和文字是科研图片处理中一个非常基础的操作,Image J也可以进行这方面的处理。 01利用描边和填充添加 在绘制好选区(几乎只会用到箭头工具)之后选择:Edit-Draw(描边,快捷键Ctrl+D),使用事先设定好的颜色和粗细进行绘制;也可以填充设定好的颜色Edit-Fill(填充…

怎么更改sql的实例版本_学会复杂一点的SQL语句:Oracle DDL和DML

create&#xff1a;创建表创建用户创建视图创建表create table student(id int,score int) ;student后面与括号之间可以有空格可以没有创建用户create user liuyifei identified by 4852396;drop&#xff1a;删除整个表、删除指定的用户、删除指定的存储空间drop table table_n…

再谈智能

来源&#xff1a;人机与认知实验室1. 智能的产生1.1 智能生成机理有关智能生成的机理&#xff0c;一直是许多领域关注的焦点问题&#xff0c;涉及面之广、深很是少见&#xff0c;初步梳理可能会与这样几个最基本的问题有关&#xff1a;认知生成的机理、知识生成的机理、意…

的图片怎么循环渲染_十分钟教你做个炫酷的图片切换过度效果

做个炫酷的图片切换过度效果首先&#xff0c;今天是520节日。到了520这类为情侣准备的节日&#xff0c;小编都会感到一万点暴击……首先酸一波&#xff0c;搞点事情(蹭波热度)。给大家分享一个520特效页面&#xff1a;看完记得回来为小编点个赞哦&#xff01;这是案例请扫前言老…

《自然》:修复AI神经网络的缺陷

来源&#xff1a;王宏琳科学网博客我在上一篇《海外观察》博客中&#xff0c;介绍了纽约大学马库斯教授和戴维斯教授的新书《重启 AI&#xff1a;构建我们可以信任的人工智能》和图灵奖得主朱迪亚•珀尔的著作《为什么&#xff1a;关于因果关系的新科学》。这两本书都分析了以深…

三. 自动化测试用例设计

1. 主要内容&#xff1a; 2. 手工测试用例与自动化测试用例区别 目前自动化测试更多的时候是定位在冒烟测试和回归测试&#xff1b; 冒烟测试执行的是主体功能点的用例。回归测试执行全部或部分的测试用例。3. 测试类型 4. 异常 5. WebDriver错误截图 get_screenshot_as_f…

c++卸载工具_win7系统如何卸载office2007兼容包

win7系统如何卸载office2007兼容包?office2007是一款热门的办公软件&#xff0c;但有的朋友不习惯使用office2007&#xff0c;但是一些说电脑安装office2007软件后&#xff0c;想要更换其他版本的话&#xff0c;此前需要将office2007卸载掉&#xff0c;不知怎么卸载office2007…

人工智能伦理如何设定,从种群层面看人类的知识积累和进化

前言&#xff1a;9月份中宣部出版局《中国图书评论》对《崛起的超级智能》进行了推荐和评论&#xff0c;对其中阐述的种群知识库扩展观点给予了重点关注。应该说种群知识库扩展是互联网大脑架构不断发展的抽象推论&#xff0c;这个推论对于人工智能及其伦理的建立也应有相应的价…

python可以这样学读后感_Python基础教程的读后感10篇

《Python基础教程》是一本由Magnus Lie Hetland著作&#xff0c;人民邮电出版社出版的平装图书&#xff0c;本书定价&#xff1a;69.00元&#xff0c;页数&#xff1a;471&#xff0c;文章吧小编精心整理的一些读者的读后感&#xff0c;希望对大家能有帮助。 《Python基础教程》…

光通信的再思考:5G流量爆发下的数据密度革命

来源&#xff1a;未来智库1.投资要件区别于市场的观点&#xff1a;&#xff08;1&#xff09;市场对 5G 时代流量爆发的认知不足。市场认为当前大带宽高流量新应用的爆发趋势尚不明显&#xff0c;当前流量增长需求不清。我们认为&#xff0c;5G 时代的流量的爆发将会是数十倍的…

玩家可以输入辅助指令_最后生还者 第二部辅助功能详解 盲人玩家也能玩

顽皮狗首席系统设计师Matthew Gallant&#xff0c;今天在Playstation Blog公开了《最后生还者 第二部》中辅助功能的详情。他们表示从设计之初&#xff0c;他们就希望有更多的粉丝能够体验到这款作品。在《神秘海域4&#xff1a;盗徒末路》的基础上&#xff0c;《TLOU2》提供了…

为什么深度学习如此容易被愚弄?AI研究员正在努力修复神经网络缺陷

来源&#xff1a;nature假设一辆自动驾驶汽车看到停车标志时并没有减速&#xff0c;而是加速驶入了繁忙的十字路口&#xff0c;从而导致了交通事故。事故报告显示&#xff0c;停车标志的表面粘了四个小的矩形标志。这说明一些微小扰动就能愚弄车载人工智能&#xff08;AI&#…

.net core image怎么保存_C# 将PDF转为多种Image图像文件格式(Png/Bmp/Emf/Tiff)

PDF是一种在我们日常工作学习中最常用到的文档格式之一&#xff0c;但常常也会因为文档的不易编辑的特点&#xff0c;在遇到需要编辑PDF文档内容或者转换文件格式的情况时让人苦恼。通常对于开发者而言&#xff0c;可选择通过使用组件的方式来实现PDF文档的编辑或者格式转换&am…

h5课件制作_PPT新功能!竟然还能用来制作H5

原标题&#xff1a;PPT新功能&#xff01;竟然还能用来制作H5最近几年随着移动端的快速发展&#xff0c;我们获取信息的途径更加便捷了&#xff0c;我们几乎每天都会刷微博、看朋友圈。而在众多的信息传递中&#xff0c;H5页面成了最受大众欢迎的形式。所谓的H5&#xff0c;简单…

Nature重磅发现:神经活动影响人类寿命!

来源&#xff1a;中国生物技术网北京时间10月17日&#xff0c;发表在《Nature》上的一篇新研究中&#xff0c;来自美国哈佛医学院的科学家发现&#xff0c;长期以来与从痴呆症到癫痫等疾病有关的大脑神经活动&#xff0c;在人类衰老和寿命方面也发挥着作用。这项基于人脑、小鼠…

bootstrap 富文本_入坑吗?说说几个富文本编辑器

也许&#xff0c;你时常会遇到要开发基于Web的文本编辑器的情况。有时候&#xff0c;只需实现一个简约且轻量级的应用程序&#xff0c;不必有其他任何不必要的功能。因此&#xff0c;总能找到一种工具&#xff0c;来创建符合用户需求和资金要求的在线文本编辑器。本文将简要介绍…

战略 | 分析这25家千亿美元市值企业后,发现了这些趋势......

文章来源 |《哈佛商业评论》图片来源 | 网络编辑 | 智慧云导读&#xff1a;本文发表在《哈佛商业评论》上&#xff0c;作者通过对几百家卓越的公司进行相关调查研究&#xff0c;发现这些公司在其成功的数十年间采用的战略始终符合3个基本法则。本文在此基础上&#xff0c;对相关…

bs 程序用户个性化设置保存_想更改win10设置,这12种打开方法你不可不知,方便又快捷...

“设置”应用程序是Windows 10中最有用和最重要的应用程序之一&#xff0c;我们设置帐户、应用程序、系统、设备、网络和Internet、个性化、时间和语言、更新和安全等等都要通过它来进行。由于我们使用此应用程序比系统中的任何其他应用程序都要多&#xff0c;所以我们要熟悉打…