Android-BroadCastReceiver
2015-09-09 15:28
453 查看
广播接收者(BroadCastReceiver)用于接收广播intent,广播intent的发送是通过调用context.sendBroadcast()、context.sendOrderedBroadcast()来实现的,通常一个广播intent被订阅了此intent的多个广播接收者来接收。
广播是一种广泛应用在应用程序之间传输信息的机制,而BroadCastReceiver是对发送出来的广播进行过滤、接收并相应的一类组件。
程序启动BroadCastReceiver的步骤:
第一步:创建需要启动BroadCastReceiver的Intent。
第二步:调用context的sendBroadcast()或sendOrderedBroadcast()来启动指定的BroadCastREceiver。其中sendOrderedBroadcast()发送的是有序广播。
当应用发出一个Broadcast Intent之后所匹配该Intent的组件都可能被启动。
创建BroadCastReceiver的步骤:
第一步:创建BroadCastReceiver的子类。
由于BroadcastReceiver本质上是个监听器,所以创建BroadCastReceiver的方法也非常简单,只要创建一个BroadCastReceiver的子类然后重写onReceive()方法即可。
第二步:注册BroadCastReceive。
一旦实现了BroadCastReceiver,接下来就应该指定该BroadCastReceiver
能匹配的Intent,即注册BroadCastReceiver,注册BroadCastReceiver的方式有两种:
第一种是静态注册:
这种方法是在配置Manifest.xml文件中注册,通过这种方式注册的广播为常驻型广播,也就是说如果应用程序关闭了,有相应事件触发,程序还是会被系统自动调用执行。例如:
<!-- 在配置文件中注册BroadcastReceiver能够匹配的Intent
-->
<receiver android:name="com.example.test.MyBroadcastReceiver">
<intent-filter>
</action>
<categoryandroid:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</receiver>
第二种是动态注册:
这种方式是通过代码在.java文件中进行注册。通过这种方式注册的广播为非常驻型广播,即它会跟随activity的生命周期,所以在Activity结束前我们要调用unregisterReceiver(receiver)移除它。例如:
//通过代码的方式动态注册MyBroadcastReceiver
MyBroadcastReceiver receiver=new
MyBroadcastReceiver();
IntentFilter filter=new
IntentFilter();
filter.addAction("android.intent.action.MyBroadcastReceiver");
//注册receiver
registerReceiver(receiver, filter);
注意:如果我们在Activity中注册了BroadCastReceiver,就必须在Activity销毁的时候主动撤销注册,否则会出异常。例如:
protected void onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
//当Activity销毁的时候取消注册BroadcastReceiver
unregisterReceiver(receiver);
}
广播是一种广泛应用在应用程序之间传输信息的机制,而BroadCastReceiver是对发送出来的广播进行过滤、接收并相应的一类组件。
程序启动BroadCastReceiver的步骤:
第一步:创建需要启动BroadCastReceiver的Intent。
第二步:调用context的sendBroadcast()或sendOrderedBroadcast()来启动指定的BroadCastREceiver。其中sendOrderedBroadcast()发送的是有序广播。
当应用发出一个Broadcast Intent之后所匹配该Intent的组件都可能被启动。
创建BroadCastReceiver的步骤:
第一步:创建BroadCastReceiver的子类。
由于BroadcastReceiver本质上是个监听器,所以创建BroadCastReceiver的方法也非常简单,只要创建一个BroadCastReceiver的子类然后重写onReceive()方法即可。
第二步:注册BroadCastReceive。
一旦实现了BroadCastReceiver,接下来就应该指定该BroadCastReceiver
能匹配的Intent,即注册BroadCastReceiver,注册BroadCastReceiver的方式有两种:
第一种是静态注册:
这种方法是在配置Manifest.xml文件中注册,通过这种方式注册的广播为常驻型广播,也就是说如果应用程序关闭了,有相应事件触发,程序还是会被系统自动调用执行。例如:
<!-- 在配置文件中注册BroadcastReceiver能够匹配的Intent
-->
<receiver android:name="com.example.test.MyBroadcastReceiver">
<intent-filter>
</action>
<categoryandroid:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</receiver>
第二种是动态注册:
这种方式是通过代码在.java文件中进行注册。通过这种方式注册的广播为非常驻型广播,即它会跟随activity的生命周期,所以在Activity结束前我们要调用unregisterReceiver(receiver)移除它。例如:
//通过代码的方式动态注册MyBroadcastReceiver
MyBroadcastReceiver receiver=new
MyBroadcastReceiver();
IntentFilter filter=new
IntentFilter();
filter.addAction("android.intent.action.MyBroadcastReceiver");
//注册receiver
registerReceiver(receiver, filter);
注意:如果我们在Activity中注册了BroadCastReceiver,就必须在Activity销毁的时候主动撤销注册,否则会出异常。例如:
protected void onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
//当Activity销毁的时候取消注册BroadcastReceiver
unregisterReceiver(receiver);
}
相关文章推荐
- Android权限标签uses-permission
- android studio 中去除应用标题栏
- android wifi讲解 wifi列表显示
- Android进阶之读取手机短信显示listview
- android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好
- android之实时音效
- Android手势监测-GestureDector
- Android event事件上报方法
- Android更改状态栏颜色
- android 默认锁屏界面没有紧急呼救入口如何解决
- Android多线程编程(异步通信)--->Handler和AsyncTask
- Android进阶之读取手机联系人显示listview并点击拨号(CursorAdapter)
- android L平台增加来电翻转静音菜单、功能
- 圆形头像设置Android 原代码
- Android Handler简单使用
- Android短信息验证码自动填写详细介绍
- 日历算法Android
- Android学习——五种布局方式
- Android免Root无侵入AOP框架Dexposed
- android 权限大全