首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Carson带你学Android:手把手教你学会广播组件-BroadcastReceiver

定义 即 广播,是一个全局监听器,属于Android四大组件之一 Android 广播分为两个角色:广播发送者广播接收者 2....5.2.3 两种注册方式区别 5.3 广播发送者向AMS发送广播 5.3.1 广播发送 广播 是 用”意图(Intent)“标识 定义广播本质 = 定义广播所具备意图(Intent)” 广播发送...= 广播发送者 将此广播意图(Intent)”通过sendBroadcast()方法发送出去 5.3.2 广播类型 广播类型主要分为5类: 普通广播(Normal Broadcast) 系统广播...Intent.ACTION_SHUTDOWN 重启设备 Intent.ACTION_REBOOT 注:使用系统广播,只需要在注册广播接收定义相关action即可,并不需要手动发送广播系统有相关操作时会自动进行系统广播...; 广播发送和接收,增设相应权限permission,用于权限验证; 发送广播指定该广播接收器所在包名,此广播将只会发送到此包中App内与之相匹配有效广播接收器中。

63510

17 个必须掌握 BroadcastReceiver 知识点「建议收藏」

这种组件本质上是一种全局监听器,用于监听系统全局广播消息。 它可以接收来自系统和应用广播。...广播发出之后,同一刻只有一个广播接收器能够收到这条广播消息,其逻辑执行完后该广播接收器才会继续传递。...系统内部特定时间发生,系统广播由系统自动发出。...1.7 本地广播 本地广播机制使得发出广播只能够应用程序内部进行传递,并且广播接收器也只能接受来自本应用程序发出广播,则安全性得到了提高。...不要在 onReceiver() 方法中添加过多逻辑或者进行任何耗时操作,因为广播接收器中是不允许开启线程 onReceiver() 方法运行了较长时间而没有结束,程序就会报错。

1.5K31
您找到你想要的搜索结果了吗?
是的
没有找到

Android四大组件:BroadcastReceiver史上最全面解析

Android系统特定情况下与App之间消息通信 如电话呼入时、网络可用时 c. 多线程通信 ---- 3....实现原理 Android广播使用了设计模式中观察者模式:基于消息发布/订阅事件模型。 因此,Android广播发送者接收者极大程度解耦,使得系统能够方便集成,更易扩展。...4.3 广播发送者向AMS发送广播 4.3.1 广播发送 广播是用”意图(Intent)“标识 定义广播本质:定义广播所具备意图(Intent)” 广播发送:广播发送者将此广播意图“通过sendBroadcast...Intent.ACTION_SHUTDOWN 重启设备 Intent.ACTION_REBOOT 注:使用系统广播,只需要在注册广播接收定义相关action即可,并不需要手动发送广播系统有相关操作时会自动进行系统广播...; 广播发送和接收,增设相应权限permission,用于权限验证; 发送广播指定该广播接收器所在包名,此广播将只会发送到此包中App内与之相匹配有效广播接收器中。

1.5K10

Android 四大组件之BroadcastReceiver

注意:广播发送者广播接受者执行顺序是异步发送者不会关心有无接收者及接收者是否接收。 5....5.3 广播发送及广播类型 广播发送:广播“发送”与“接收”,表面上看是广播作为 Android 广播机制中实体,实际上这一实体本身是并不是以所谓广播“对象存在,而是以”意图“(Intent)...定义广播定义本质,实际就是相应广播意图定义过程,然后通过广播发送者通过 sendBroadcast() 方法将此”意图“发送出去。...使用系统广播,只需注册广播接收定义相关action即可,不需要手动发送广播系统有相关操作时会自动进行系统广播发送。 ?...广播发送和接收,都增加上相应permission,用于权限验证; c.

1.3K10

安卓应用安全指南 4.2.3 创建使用广播接收器 高级话题

当应用 B 是恶意软件,会导致敏感信息泄漏。 发送有序广播,它可能会收到意外结果信息。...然而,广播接收器仅接收由系统发送广播意图,应使用带有意图过滤器定义exported="false"。 其他组合不应使用。...因此,不需要粘性广播,需要显式调用removeStickyBroadcast()来删除粘滞广播。 此外,带有特定权限受限广播接收器无法接收广播。...与粘性广播相同,它不能仅仅允许带有特定权限广播接收接收广播。 从广播特性行为角度来看,上表反过来排列在下面的表中。...然而,缺少权限导致接收/发送方错误时,将输出错误日志。 由广播发送意图信息包含在错误日志中,因此发生错误之后,需要注意,发送广播意图信息显示LogCat中。

98210

安卓应用安全指南 4.2.2 创建使用广播接收器 规则书

如上所述,广播接收器返回结果信息,需要注意从目标应用泄漏结果信息。...对于广播敏感信息,只有可靠广播接收器可以接收它,而其他广播接收器则不能。 以下是广播发送方法一些示例。 方法是,通过使用显式意图,将广播仅仅发送给预期可靠广播接收器,来固定地址。...粘性广播变得不必要,可以随时用removeStickyBroadcast()任意删除它。 由于预设情况下,粘性广播被隐式意图使用。...发送方(源)广播接收器是公共广播接收,它从未指定大量应用接收返回数据。 所以它也可能会收到恶意软件攻击数据。 发送方(源)广播接收器是私有广播接收,似乎没有风险。... Android 权限安全模型中,权限仅管理来自应用受保护素材直接访问。 由于这些特点,所得素材可能会被提供给其他应用,而无需声明保护所需权限。

81030

android之注册registerReceiver

image.png BroadcastReceiver 广播作为四大组件之一,使用方式也是多种多样,既可以自己manifest中注册,也可以java代码中动态注册,既可以接收由系统发出广播,也可以接受自己定义并发送广播...Sticky广播(已弃用) 从发送者区分:系统广播和自定义广播 BroadcastReceiver作为Android四大组件之一,不像Activity,没有可显示界面。...BroadcastReceiver包括两个概念,广播发送者广播接收者(Receiver),这里广播实际就是指Intent,程序可以自己发送广播自己接收,也可以接受系统或其他应用广播或是发送广播给其他应用程序...注册完成后,发送者发送某个广播系统会将发送广播(Intent)与系统中所有注册符合条件接收者(Receiver) IntentFilter进行匹配,若匹配成功则执行相应接收onReceive...例,startActivity(intent) 中 intent 分类不能android.intent.category.DEFAULT 和 android.intent.category.BROWSABLE

1.8K20

android登录注册_android studio注册页面

image.png BroadcastReceiver 广播作为四大组件之一,使用方式也是多种多样,既可以自己manifest中注册,也可以java代码中动态注册,既可以接收由系统发出广播,也可以接受自己定义并发送广播...Sticky广播(已弃用) 从发送者区分:系统广播和自定义广播 BroadcastReceiver作为Android四大组件之一,不像Activity,没有可显示界面。...BroadcastReceiver包括两个概念,广播发送者广播接收者(Receiver),这里广播实际就是指Intent,程序可以自己发送广播自己接收,也可以接受系统或其他应用广播或是发送广播给其他应用程序...注册完成后,发送者发送某个广播系统会将发送广播(Intent)与系统中所有注册符合条件接收者(Receiver) IntentFilter进行匹配,若匹配成功则执行相应接收onReceive...例,startActivity(intent) 中 intent 分类不能android.intent.category.DEFAULT 和 android.intent.category.BROWSABLE

2.7K30

EventBus初体验

整个流程跟广播类似, Publisher发送事件,就类似我们发送一个广播, 接收广播地方进行注册, 我们就可以接收广播发出来事件, 然后就可以处理。Subscriber就类似广播处理器。...priority 优先级, 值越小优先级越低,有多个方法处理同一个消息,处理顺序,默认为0。 sticky 是否接收黏性消息, 和黏性广播相同, 默认为false。...sticky黏性消息:消息发送出去之后,如果没有消息接收者处理这个消息,此消息会暂时存储EventBus实例中, 后面注册消息接受者,如果是相应处理者, 将会把消息给处理者去处理;我个人喜欢用这个来做数据预加载...由于Android机器本身性能有限,一般不建议使用运行时注解,虽然EventBus注解声明为Runtime, 但它同时支持编译注解和运行时注解, 没配置编译注解处理器, 会自动通过反射查找运行时注解...LocalBroadcastManager 这个除了广播低延迟外, Boardcast缺点都有, 并且它还不能跨进程, 没有黏性广播

68810

Android移动应用基础教程》(Android Studio)(第二版)黑马程序员 课后习题答案

广播发送者接收者分别处于观察者模式中消息发布和订阅两端。...(2) 广播发送者通过Binder机制向AMS发送广播。 (3) AMS查找符合相应条件(IntentFilter/Permission)广播接收者,将广播发送到相应消息循环队列中。...有序广播按照广播接收者声明优先级别被依次接收。当在高级别的广播接收者逻辑执行完毕之后,广播才会继续传递。优先级相同时,先注册广播接受者优先执行。 b)无序广播是完全异步执行。...发送无序广播,所有监听这个广播广播接收者都会接收到此广播消息,但接收和执行顺序不确定。 (3)拦截广播 有序广播接收者可拦截广播。...如果优先级较高广播接收者将广播终止,那么广播将不再向后传递。而无序广播不能被拦截。 (4)效率 有序广播效率比无序广播低。

2.6K20

Android安全之应用层安全(五)

最知名服务示例是在后台播放音乐媒体播放器,即使用户离开已启动此服务活动。 广播接收器。 广播接收器是应用组件,它接收广播消息并根据所获得消息启动工作流。 内容供应器。...由于没有入口点,所有组件(广播接收器除外,它也可以动态定义)需要由应用开发人员AndroidManifest.xml文件中声明。 分离成组件使得我们可以在其它应用中使用组件。...在这种情况下,被调用服务调用其方法onStart。 开发人员要在组件和服务之间建立连接,它调用bindService方法,并在被调用服务中调用onBind方法。...当应用或系统组件使用sendBroadcast,sendOrderedBroadcast和sendStickyBroadcast方法发送特殊消息,将启动广播接收器。...根据这个信息,使用意图过滤器,操作系统选择可以处理意图适当组件。意图过滤器定义了组件可以处理意图“模板"。当然,相同应用可以定义一个意图过滤器,它将处理来自其他组件意图

97920

HCIE数通知识精讲-IP组播基础(part-1)

图1 采用单播和广播方式进行点对多点传输数据示意图 ? · 采用单播方式,网络中传输信息量与需要该信息用户量成正比。...需要该信息用户数量较大,信息源需要将多份内容相同信息发送给不同用户,这对信息源以及网络带宽都将造成巨大压力。由此可以看出,该传输方式不利于信息批量发送,只适用于用户稀少网络。...· 采用广播方式,不需要接收信息主机也将收到该信息,这样不仅信息安全性得不到保障,而且会造成同一网段中信息泛滥。由此可见,该传输方式不利于与特定对象进行数据交互,并且还浪费了大量带宽。...由上述可见,传统单播和广播通信方式不能有效地解决单点发送、多点接收问题。...组播相对单播和广播有如下优势: · 相比单播,由于被传递信息距信息源尽可能远网络节点才开始被复制和分发,所以用户增加不会导致信息源负载加重以及网络资源消耗显著增加。

67030

浅入浅出 Android 安全:第五章 Android 应用层安全

最知名服务示例是在后台播放音乐媒体播放器,即使用户离开已启动此服务活动。 广播接收器。 广播接收器是应用组件,它接收广播消息并根据所获得消息启动工作流。 内容供应器。...由于没有入口点,所有组件(广播接收器除外,它也可以动态定义)需要由应用开发人员AndroidManifest.xml文件中声明。 分离成组件使得我们可以在其它应用中使用组件。...在这种情况下,被调用服务调用其方法onStart。 开发人员要在组件和服务之间建立连接,它调用bindService方法,并在被调用服务中调用onBind方法。...当应用或系统组件使用sendBroadcast,sendOrderedBroadcast和sendStickyBroadcast方法发送特殊消息,将启动广播接收器。...根据这个信息,使用意图过滤器,操作系统选择可以处理意图适当组件。意图过滤器定义了组件可以处理意图“模板”。当然,相同应用可以定义一个意图过滤器,它将处理来自其他组件意图

53030

android Broadcast Receiver漏洞挖掘

Broadcast Receiver安全场景和危害 BroadcastReceiver是Android四大组件之一,这个组件涉及两个概念:广播发送者广播接受者。...发送一个广播,系统会将发送广播(intent)与系统中所有注册符合条件接收IntentFilter进行匹配,若匹配成功,则执行相应接收onReceive函数。...发送广播如果处理不当,恶意应用便可以嗅探、拦截广播,致使敏感数据泄露等;如果接收广播处理不当,便可导致拒绝服务攻击、伪造消息、越权操作等。...内部app之间广播使用protectionLevel=’signature’ 验证其是否真是内部app。 返回结果需注意接收app是否会泄露信息。...发送广播包含敏感信息需指定广播接收器,使用显示意图或者setPackage(String packageName)。 使用LocalBroadcastManager。

1K20

Android高频面试专题 - 基础篇(四)BroadcastReceiver

AMS 根据 广播发送者 要求,已注册列表中,寻找合适广播接收者 寻找依据:IntentFilter / Permission 4....mActions 主要作用是方便在广播发送后快速得到可以接收BroadcastReceiver。 注册广播,其实是更新这两个Map....Android 4.0及以上系统中发送广播,可以使用setPackage()方法设置接受广播包名。 使用本地广播。...(2)接受广播 注册广播接收,增加相应permission,用于权限验证。 注册广播接收,设置android:exported值为false。 使用本地广播。...不能广播接收默认是主线程中运行,在前面Android高频面试专题 - 进阶篇(一)ANR中讲过,广播超时是10s(前台)和60s(后台),如果耗时超过这个时间,就会抛出ANR,所以如果需要在广播内执行耗时操作

1.6K41

Android四大组件之BroadcastReceiver详解

BroadcastReceiver(广播接收器),Android开发中,BroadcastReceiver应用场景非常多,属于Android四大组件之一。...Android 广播分为两个角色:广播发送者广播接收者 一、 作用 用于监听 / 接收 应用发出广播消息,并做出响应 应用场景: 不同组件之间通信(包括应用内 / 不同应用之间) 与 Android...系统特定情况下通信(如电话呼入时、网络可用时) 多线程通信 二、实现原理 Android广播使用了设计模式中观察者模式:基于消息发布/订阅事件模型。...Binder 机制向AMS发送广播 AMS根据广播发送者要求,已注册列表中,寻找合适广播接收者(寻找依据:IntentFilter / Permission) AMS将广播发送到合适广播接收者相应消息循环队列中...<receiver //此广播接收者类是mBroadcastReceiver android:name=".mBroadcastReceiver" //用于接收网络状态改变发出广播 <

80360

安卓开发_深入理解广播机制

一、Broadcast(广播Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应处理。...原因如下: (1)广播接收生命周期是非常短暂广播接收接收广播开始创建,而执行完onReceive(context,intent)方法后就销毁 (2)默认情况下,广播接收器也是运行在UI线程中...发送广播,不管是什么广播类型(系统广播),系统默认增加了值为FLAG_EXCLUDE_STOPPED_PACKAGES(不包含已经停止包)FLAG, 导致即使是静态注册广播接收器,对于其所在进程已经退出应用程序...4、发送广播 广播 其实是以 意图(Intent)形式表示 发送广播 就是 通过广播发送者将”意图“(意图包含action 附带数据)发送出去。...(3)BroadcastReceiver.abortBroadcast() 中断广播,使级别低广播接收不能接收广播 比如三个不同广播接收器都可以接收同一个广播,设三个广播优先级为-100,0,100

1.4K70

Android点将台:传令官(使用级)

) sendBroadcast(intent) } 4.静态广播数据获取 广播接收onReceive回调中有intent: Intent,你应该明白怎么传数据了吧 ---...也没有太大亮点,作用平平 为了说明他亮点,现在我们新建一个app:Anotherapp 可以发现在另一个app里也能正常使用这个广播 这就有点意思了,我A项目中写了一个类,它方法可以...动态使用分为注册和注销,不需要在AndroidManifest.xml注册 只有注册后和注销前时间段才能使用,否则广播无效(即onReceive方法不会掉) 1.注册广播与发送消息 /**...|---劣势:只有注册之后才能起作用,ActivityonDestroy后如果未被注销,会报异常 ----所以动态注册广播存活时间最长也就约等于Activity生命周期长度 静态注册广播...注册广播接收者 registerReceiver(mScreenReceiver, filter) } 2.短信监听广播 注意权限:<uses-permission android:name=

9010

Android 四大组件学习之BroadcastReceiver三

广播分为无序广播和有序广播 无序广播广播发送者action与广播接收action都匹配的话,所以广播介绍者都可以收到这条广播,并且没有先后顺序,可以认为是同时收到 有序广播广播发送者action...与广播接收action都匹配的话,所以广播介绍者都可以收到这条广播,但是有先后顺序,高优先级先收到 既然知道什么是无序广播和有序广播后, 那我们举例说明: 那我们模拟生活中一个例子说明。...我们假设: 某某某高校校长是这次广播发送者,计算机学院院长,导员和各个班班长是广播接收者 先用无序广播举例: 第一: 创建校长应用程序,也就是广播发送者: public class PresidentActivity...有一天学校检查部门(也就是一帮臭b学生会,来检查上早操的人数) 这时候我们就需要对发送者改造: public void sendBroadcast(View v) { Intent...这就是有序广播发送者发送后,第一个接受者可以对广播内容修改,同时也可以终止广播继续发送。但是广播最终接受者是一定可以收到此广播

24220
领券