android四大组件之BroadcastReceiver广播篇
来源:互联网 发布:淘宝投诉凭证上传失败 编辑:程序博客网 时间:2024/04/27 14:50
今天学习了了android四大组件之广播BroadcastReceiver,广播在android项目中的使用范围也是非常广的,我们可以用来监听手机的一些变化, 比如:手机电量不足、短信等,下面写一下我自己学习之后的一些心得体会
首先,广播可以分为:普通广播、有序广播、异步广播(三者的类别,我就不再多谢,打字好累。。。下面只介绍普通广播的使用)
1、注册广播
首先,写一个广播接收者,这里为BC1,让BC1继承BroadcastReceive,实现onreceive()方法;
注册广播有两种方法:静态注册和动态注册,当intent发送以后,所有注册过的BroadcastReceive胡检查注册的intentfilter是否与发送的intent
相匹配,如果匹配就会调用BroadcastReceive的onreceive()方法,在onreceive()可以接收intent传递的值
a:静态注册
所谓的静态注册广播,就是在AndroidManifest.xml文件中,通过
<receiver android:name="com.example.broadcasttest.BC1"> <intent-filter> <action android:name="BC_msg1"/> </intent-filter></receiver>
这样我们就可以注册一个广播接收者,通过intent-filter来过滤我们所对应的广播
b:动态注册
所谓的动态注册广播,就是通过代码在程序中注册一个广播,首先定义一个广播过滤器,得到我们所要获取的广播,可以通过以下代码来实现
IntentFilter filter=new IntentFilter("BC_msg1");BC1 bc1=new BC1();registerReceiver(bc1, filter);
通过动态注册的广播,在程序的最后,需要将广播注销掉,注销掉一个广播可以使用unregisterReceiver(bc1);方法来实现注销广播
2、接收广播
接收广播是在onreceive()方法中实现,onreceive(Context context, Intent intent)中有两个参数,我们可以直接通过intent获取广播传递的数据,例:
public void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubString msg=intent.getStringExtra("msg");System.out.println("bc1广播"+msg);}
3、注意
a、BroadcastReceive生命周期只有10秒
b、BroadcastReceive中不能做一些比较耗时的操作
c、可以通过发送intent给service,由service来完成耗时操作
d、不能使用子线程(有可能子线程还没有结束,BroadcastReceive就已经被销毁)
e、动态注册广播使用完之后记得销毁
1 0
- android四大组件之BroadcastReceiver广播篇
- android四大组件之广播接收器BroadcastReceiver
- android四大组件之--->BroadcastReceiver广播接收器
- Android 四大组件之BroadcastReceiver 广播
- Android 四大组件之 BroadcastReceiver 广播接收者
- Android四大组件之broadcastreceiver(广播)
- 四大组件之BroadcastReceiver(广播)
- 四大组件之广播BroadcastReceiver
- Android学习之四大组件之广播接收器BroadcastReceiver
- android四大组件之广播接收者(BroadcastReceiver)
- Android四大组件之四:BroadcastReceiver 广播接收器
- Android四大组件之Broadcast(广播接收BroadcastReceiver)
- Android 四大组件之BroadcastReceiver(发送有序无序广播)
- Android四大组件之BroadcastReceiver(广播)简单总结
- Android开发--四大组件之BroadcastReceiver广播接收器
- Android四大组件之广播接收者(BroadcastReceiver)
- 四大组件:BroadCastReceiver广播
- 四大组件之广播接收器BroadcastReceiver
- 一次二次三次bezier曲线的计算方式及demo演示
- Session的生命周期
- 《程序员面试金典》空格替换
- 图片处理类 类库
- 底层因为接受到操作系统信号而停止
- android四大组件之BroadcastReceiver广播篇
- 语音识别控制QQ(转自吴英强)
- 手机端meta标签汇总
- ListView中android:entries属性只能设置为string-array对象
- Java集合的用法和比较
- lwip BSD API函数说明
- 判断两棵二叉树是否相等
- Android 中关于 【Cursor】 类的介绍
- android网络游戏——网络通信——epoll