playboy 发表于 2022-1-1 08:13

4.4 四大组件_BroadcastReceiver(第二十课)

以下为图文内容:
4.4 四大组件_BroadcastReceiver
0x01 BroadcastReceiver概念
BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系
统和应用中的广播。对接收到的广播进行选择处理,想要接收什么样的广播和内部定义的
广播匹配,匹配则进行该做的处理操作,没有匹配则无操作,就比如在玩游戏的同时接收
到短信事件,对此你要做什么操作,是想看短信内容还是不做什么处理继续玩游戏,这就
是广播的用途。
0x02 注册广播的分类
注册广播的分类有两种,一种是在代码中注册,一种是在androidMainfest.xml中
注册,前者是动态注册,后者是静态注册。创建广播接收器也非常简单,我们只需要创建
一个类继承自BroadCastReceiver 并实现onReceive()方法即可。 当广播到来的时候,
onReceive()就会执行,具体的处理逻辑代码写在这个方法中就可以了。
简单的举例代码如下:

package com.feichen.receiver;

在创建完广播接收器之后,还无法正常工作,我们还需要为它注册一个知道得到广播地址
下面介绍两种广播方式。
1. 静态注册
静态注册是在AndroidManifest.xml 文件中配置的这里给MyReceiver 注册一个广

播地址。
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_BROADCA
ST"/>
<category android:name="android.intent.category.DEFAUL
T" />
</intent-filter>
</receiver>配置了好之后,只要是android.intent.action.MY_BROADCAST 这个地址的广播,
MyReceiver都能够接收到。注意,这种方式的注册是常驻型的,也就是说当应用关闭后,
如果有广播信息传来,MyReceiver也会被系统调用而自动运行。
2. 动态注册
动态注册是在代码中动态指定广播地址并注册。通常是在Activity或Service注册一个广
播,下面来看一下注册的代码:

MyReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MY_BROADCAST");
registerReceiver(receiver, filter);这种注册方式与静态注册相反,不是常驻型的,也就是说广播会跟随程序的生命周期。当
注册完成之后,这个接收者就可以正常工作了。我们可以用以下方式向其发送一条广播:
**** Hidden Message *****

小白123 发表于 2022-1-1 09:25

感谢大佬分享

EMT 发表于 2022-1-1 09:34

谢谢分享

myh398958105 发表于 2022-1-1 21:14

感谢大佬分享

klun 发表于 2022-1-2 02:22

感谢分享

阿桂哥 发表于 2022-1-2 10:19

回复看隐藏,谢谢楼主

EMT 发表于 2022-1-2 11:49

谢谢分享

hetao8003200 发表于 2022-1-2 13:18

谢谢楼主分享

king51999 发表于 2022-1-2 13:47


感谢大佬分享

Reloadoooo 发表于 2022-1-2 14:52

这么多Android教程
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 4.4 四大组件_BroadcastReceiver(第二十课)