设为首页 加入收藏

TOP

Android广播接收机制(BroadcastReceiver)
2014-11-24 12:53:53 来源: 作者: 【 】 浏览:0
Tags:Android 广播 接收 机制 BroadcastReceiver

在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。


下面我们就对BroadcastReceiver进行全面的介绍,以了解和掌握它的各种功能和用法。


首先,我们来看一下如何发送广播:


在上面的代码中,我们创建了一个唯一、特定操作的Intet,并向其中添加了一个extra消息,然后调用sendBroadcast()方法,发送了一条广播。
那么如何接收广播呢?看代码


创建广播接收程序非常简单,只需扩展BroadcastReceiver类并改写onReceive()方法。我们可以在接收程序中通过Intent取得广播发送的具体消息内容。
最后,我们还必须在描述文件中注册我们编写的接收程序,否则你将无法收到广播。


这种在描述文件中注册的方式我们称之为:静态方式。这种方式的注册是常驻型的,也就是说当应用关闭后,如果有广播信息传来,TestReceiver也会被系统调用而自动运行,从而接收到广播消息。
还有一种代码中实现的动态注册方式,具体代码为:


registerReceiver是android.content.ContextWrapper类中的方法,Activity和Service都继承了ContextWrapper,所以可以直接调用。在实际应用中,我们在Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册了。可以通过在onDestory()方法中解除注册来解决这个问题:


动态注册与静态注册不同的是:它不是常驻的,一旦程序结束,广播接收也将结束。
下面我们看一个发送接收广播的完整例子:
首先来看主活动类:


广播接收器类:


下来是布局文件:
layout/main.xml


菜单资源文件:
menu/main_menu.xml


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android活动文件夹 下一篇Android桌面快捷方式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)