BroadcastReceiver小结
来源:互联网 发布:c语言打印糖果图形 编辑:程序博客网 时间:2024/06/05 21:59
BroadcastReceiver这种组件本质上就是一个全局监听器,用于监听系统全局的广播消息.也因此可以实现系统中不同组件之间的通信
程序启动BroadcastReceiver只需要两部:
- 创建需要启动的BroadcastReceiver的Intent
- 调用Context的sendBroadcast()或sendOrderedBroadcast()方法启动指定的BroadcastReceiver
指定BroadcastReceiver匹配的Intent有两种方式:
- 使用代码进行指定,调用BroadcastReceiver的Context的registerReceiver(BroadcastReceiver receiver,IntentFilter filter)方法指定.代码如下:
IntentFilter filter = new IntentFilter("a;dkfj;akfj;aklf");//过滤符号当然是自定义的MyReceiver mRecceiver = new MyReceiver();registerReceiver(receiver,filter);//这一步必须记下来
- 在清单文件中配置
<receiver android:name=".MyReceiver"> <intent-filter> <action android:name="a;dkfj;akfj;aklf"/> </intent-filter></receiver>
不要在BroadcastReceiver的onReceiver()方法里执行一些耗时操作[下载,访问数据库,计算],否则会弹出ANR(application No Response)对话框
如果确实需要,可以考虑通过Intent启动一个Service来完成该操作.因为BroadcastReceiver生命周期很短,可能出现子线程还没有结束,BroadcastReceiver就已经退出了.因此系统可能会在内存紧张时优先结束该进程.这样就会导致你启动的子线程不能执行完成了
Broadcast被分为两种:
Normal Broadcast(普通广播):理论上被所有符合条件的接受者同一时刻接收到.优点:效率高.缺点:灵活性差
Ordered Broadcast(有序广播):分为优先级接受Broadcast.优先级别声明在<,,i,n,t,e,n,t,-,f,i,l,t,e,r,… ,/>元素的android:priority属性中,数值越大级别越高.取值范围:-1000~1000,也可以调用IntentFileter对象的setPriority()设置优先级别.
Ordered Broadcast接受者可以终止 Broadcast Intent的传播[abortBroadcast()],后面的接受者就无法接收到.另外,接受者可以将数据传递给下一个接受者
sendResultExtras(Bundle)
下一个接受者可以通过代码Bundle bundle = getResultExtras(true),获取上一个接受者存入的数据
- BroadcastReceiver小结
- BroadcastReceiver小结
- BroadcastReceiver与Service小结
- android BroadcastReceiver 使用小结
- 四大组件之 BroadcastReceiver小结
- Android之Service发BroadCastReceiver小结
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadcastReceiver
- BroadCastReceiver
- BroadcastReceiver
- broadcastReceiver
- 《leetCode》: Pascal's Triangle II
- Core Animation 编程指南
- JavaScript面向对象之---工厂模式
- Javadoc-API开发文档生成
- 使用并发编程的挑战
- BroadcastReceiver小结
- Top 100 Best Blogs for iOS Developers
- 河南第六届ACM省赛(River Crossing)
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- shell编程练习002(20160227)
- opencv保存avi视频
- 《Multimedia Signals and Systems-Basic and Advanced Algorithms for Signal Processing》pdf百度云下载
- WPF的TreeView执行ExpandSubtree时抛出异常System.NullReferenceException
- Core Animation 高级理论知识汇总