安卓自学笔记

第一章:基础知识

第十节:广播接收器

广播接收器:BroadcastReceiver

 

使用BroadcastReceiver

 

首先创建一个广播接收器,位置如图:

在这个广播接收器类新建后会有一个onReceive方法,注销原代码后在里面写上一句输出语句,如果有其他的程序朝这个接收器发送消息,这句输出语句就会被执行。并在主页面添加一个按钮用来发送消息。

通过sendBraoadcast方法可以对广播接收器发送消息。

这个方法的参数是一个Intent,所以还可以再Intent的里面附加数据。

按钮相关代码和运行结果如图:

 

注册和注销广播接收器

 

将AndroidManifest.xml这个配置文件里关于广播接收器的<receiver>删掉。那么这个广播接收器就无法使用了。

添加两个按钮,分别用于注册和注销

代码如图:

 

并且发送数据的代码需要改为隐式Intent写法。

 

广播接收器的优先级

 

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

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

如果一个优先级高的接收器不想让后续的接收器接收到消息,可以在优先级高的广播接收器类里的onReceive方法写上abortBroadcast();意思就是中断广播。

而数据的发送方,按钮触发的相关代码也要将sendBroadcast(i);改写为

sendOrderedBroadcast(I,null);这个方法对广播接收器发送的通讯室允许被中断的。如图: