android-->BroadcastReceiver(深入理解广播事件)
来源:互联网 发布:宋仲基长相知乎 编辑:程序博客网 时间:2024/06/07 09:57
这个事件说起来简单但是做起来也绕了一会。在此和大家共同学习一下
本文主要类容:
1:静态注册广播事件(机制分析)
2:动态注册广播事件(机制分析)
3:优点与缺点
4:注意事项
1: 静态注册是指将注册文件放入到配置文件中进行注册
实现过程:
①:继承BroadcastReceiver 并复习void onReceive(Context context, Intent intent)
②:将广播注册到manifest.xml中
<receiver android:name="BroastRev"> // BroadcastReceiver 子类的名字(处理者) <intent-filter> <action android:name="com.pdw.activity.ACTION"></action> //对应的ACTION </intent-filter></receiver>
③:发送广播
intent.setAction(ACTION); //对应配置文件中的ACTION = "com.pdw.activity.ACTION "sendBroadcast(intent);
机制分析:
当触发了sendBroadcast方法后系统会到manifest.xml中寻找与ACTION相对应的action ,找到后会去实例化里面对应的recevier也就是这里的BroastRev,然后执行里面的void onReceive(Context context, Intent intent)方法
2:动态注册是指在程序中注册广播
实现过程:
①:实例化一个IntentFilter 并注册如下
receiver = new BroastRev(); //BroadcastReceiver 子类的名字(处理者)filter = new IntentFilter(); //实例化IntentFilter filter.addAction(ACTION);MainActivity.this.registerReceiver(receiver, filter); //注册
②:广播
intent.setAction(ACTION); //对应IntentFilter 中的ACTION = "com.pdw.activity.ACTION "sendBroadcast(intent);
③:解除注册
MainActivity.this.unregisterReceiver(receiver); //调用unregisterReceiver解除注册 这里的receiver 与注册的时候的是同一个对象
机制分析:动态注册会再程序上保持一个ACTION然后当发出广播的时候会在程序上搜索是否存在相对应的ACTION 如果存在则进入到广播子类中去!
3:优缺点分析
正如机制里面分析的那样,静态注册:简单,但是无法实现与ACTIVITY绑定,也就是说activity的的destroy与broadcastReceiver无关
动态注册:相对复杂但是可以结局静态带来的局限
4:注意事项
动态绑定只是实现了绑定,所以还是要进行发送了广播才能进行接收。也就是说BroastRev 里面的onReceive方法才会接收到!
- android-->BroadcastReceiver(深入理解广播事件)
- Android-->BroadcastReceiver(深入理解广播事件)
- Android BroadcastReceiver 广播深入研究
- Android广播(BroadcastReceiver)
- android 中BroadcastReceiver 深入理解
- Android 广播接收器(BroadcastReceiver)
- Android广播接收器(BroadcastReceiver)
- BroadcastReceiver广播事件
- 深入理解Android四大组件之一BroadcastReceiver
- Android深入探究笔记之二十 -- 广播接收者,BroadcastReceiver
- Android深入探究笔记之二十 -- 广播接收者,BroadcastReceiver
- Android深入探究笔记之二十 -- 广播接收者,BroadcastReceiver
- Android深入探究笔记之二十 -- 广播接收者,BroadcastReceiver
- Android之Broadcast, BroadcastReceiver(广播)
- Android之Broadcast, BroadcastReceiver(广播)
- Android之Broadcast, BroadcastReceiver(广播)
- Android之Broadcast, BroadcastReceiver(广播)
- Android之Broadcast, BroadcastReceiver(广播)
- Pluto2.0 Container的原理一
- Understand the Amlogic build system
- struts2常量配置优先级
- 异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- [learning opencv]第十章:精确检测角点函数cvFindCornerSubPix的demo
- android-->BroadcastReceiver(深入理解广播事件)
- Linux常用shell命令——想到一个记一个,都是菜鸟入门命令
- Linux内核配置系统浅析
- 详解css定位
- iphone objective -c 开发 表视图和导航栏开发流程及注意事项
- Java-注解
- OA系统项目实施的难点和解决办法
- Windows,Document,Location,History,Navigator
- 再谈JavaScript的数据类型问题