安卓自学笔记
第一章:基础知识
第十节:广播接收器
广播接收器:BroadcastReceiver
使用BroadcastReceiver
首先创建一个广播接收器,位置如图:

在这个广播接收器类新建后会有一个onReceive方法,注销原代码后在里面写上一句输出语句,如果有其他的程序朝这个接收器发送消息,这句输出语句就会被执行。并在主页面添加一个按钮用来发送消息。
通过sendBraoadcast方法可以对广播接收器发送消息。
这个方法的参数是一个Intent,所以还可以再Intent的里面附加数据。
按钮相关代码和运行结果如图:

注册和注销广播接收器
将AndroidManifest.xml这个配置文件里关于广播接收器的<receiver>删掉。那么这个广播接收器就无法使用了。
添加两个按钮,分别用于注册和注销
代码如图:


并且发送数据的代码需要改为隐式Intent写法。
广播接收器的优先级
再新建一个广播接收器类,并且在AndroidManifest.xml配置文件里对两个广播接收器进行配置,配置为一样的actionname,这样按钮触发发送数据的代码后,两个广播接收器都能收到信息,如图:

要为这两个接收器进行优先级的配置,可以在配置文件里这样配置,所写上的数字越大表示优先级越高,将越早接收到数据,如图:

如果一个优先级高的接收器不想让后续的接收器接收到消息,可以在优先级高的广播接收器类里的onReceive方法写上abortBroadcast();意思就是中断广播。
而数据的发送方,按钮触发的相关代码也要将sendBroadcast(i);改写为
sendOrderedBroadcast(I,null);这个方法对广播接收器发送的通讯室允许被中断的。如图:

浙公网安备 33010602011771号