Broadcast Receiver(广播接收者)

相关文章

什么是Service(服务)?
Android开发-Intent(意图)

Android四大组件,其中两项Activity和Service前面已经说过了,本次来说说第三项 Broadcast Receiver(广播接收者)。

1.1 广播接收者概念

BroadcastReceiver(广播接收者)是Android四大组件之一。

BroadcastReceiver是用于接收广播的组件,用于组件与组件之间进行通信,可以跨应用程序传递。

当有特定事件发生时,例如有来电、有短信、电池电量变化等事件发生时,Android 系统都会产生特定的Intent 对象并且自动进行广播,而针对特定事件注册的 BroadcastReceiver 会接收到这些广播,并获取 Intent 对象中的数据进行处理。

1.2 广播的注册方式

1.静态注册(在清单文件中注册相应的广播事件)

腾讯大数据挖掘之安装与卸载应用,通过安装与卸载获取相对应的包名,进行大数据分析,什么APP安装的最多,然后进行模仿改进升级,最后上架。

它的原理就是利用广播实现的,接下来讲解一下具体的实现流程:

(1)创建StaticRegReceiver继承自BroadcastReceiver并重写onReceive方法,在里面实现接收广播的代码,如下图所示。

Broadcast Receiver(广播接收者)

(2)在清单文件配置广播接收者组件,利用intent-filter意图过滤器设置action注册相应的广播事件(可同时注册多个广播事件),如下图所示。

Broadcast Receiver(广播接收者)

(3)当系统发送的广播与注册的广播事件相对应的时候会触发onReceive方法,如果注册多个广播事件,用getAction获取对应的广播事件。

2.动态注册(在java代码中注册相应的广播事件)

接收广播的代码和静态注册一样,不同点就在于注册的方式,如下图所示。
(1)动态注册步骤:
①创建广播接收者。
②创建IntentFileer对象,添加广播类型,设置相应的约束。
③调用registerReceiver方法注册广播

Broadcast Receiver(广播接收者)Broadcast Receiver(广播接收者)

小结:

本次分享了Broadcast Receiver(广播接收者),广播的注册方式有:

1、静态注册(在清单文件中注册相应的广播事件)
继承BroadcastReceiver(广播接收者)并重写onReceive方法、xml配置组件、利用intent-filter意图过滤器设置action注册相应的广播事件。

2、动态注册(在java代码中注册相应的广播事件)
接收广播的代码和静态注册的一样,不同点就在于注册的方式不一样。

如果你也对安卓逆向感兴趣。可以加下方的群,大家一起讨论问题,或者扫描下方二维码,关注回复 “安卓逆向” 获取免费教程

安卓逆向交流学习:342647370
vx:yijin1108an

Broadcast Receiver(广播接收者)