Android 四大组件之BroadcastReceiver 广播
2016-07-10 11:05
471 查看
参考大神的理解 :http://www.cnblogs.com/lwbqqyumidi/p/4168017.html
广播 BroadcastReceiver 用于接收程序所发出的Broadcast Intent, 也可以说他是一个全局监听器 监听所有程序的广播消息。
广播分为 有序广播 NormalBroadcast 普通广播
优点 效率高,但是接收者不能讲结果传递给下一个接受者 无法终止
OrderedBroadcast 有序广播
优点 可以将数据接着传递给下一个接收者 ,下一个接收者 不仅可以得到广播的数据 还能得到上一个接受者存入的数据 Bundle bundle=getResultExtras(true)可以得到上一个接受者存入的数据;可以设置优先级 让谁先得到广播的消息
但是 如果 前一个接受者停止了广播 下一个接受者就收不到了 调用abortBroadcast()终止广播
System Broadcast: 系统广播
Android系统中内置了多个系统广播,只要涉及到手机的基本操作,基本上都会发出相应的系统广播。如:开启启动,网络状态改变,拍照,屏幕关闭与开启,点亮不足等等。每个系统广播都具有特定的intent-filter,其中主要包括具体的action,系统广播发出后,将被相应的BroadcastReceiver接收。系统广播在系统内部当特定事件发生时,有系统自动发出。
简单的广播实现
广播 注册方式有两种 写法 其一: 静态广播
1:先创建一个类继承抽象类 BroadcastReceiver 并实现抽象方法OnReceive
其中 同过 参数 intent 可以得到发来的广播 通俗的讲就是得到传来的值
2:静态广播 需要在配置清单中 配置
注意 receiver的名字 是包名加类名 action 的名字 可以随意写 但要与Intent设置的一致
3:发广播
以上就是简单的 静态广播了
其二:动态广播
1i: 这里 需要用到 IntetnFilter
设置action 名称 需要与 Intent设置的一致 同样需要写个类 继承 BroadcastReceiver
然后实现抽象方法 OnReceive 创建一个实例化对象 注册广播
2:Intent 设置 主要 action要与 IntentFilter 设置的一致
3:取值 同样 与静态相同
4:取消广播
广播 BroadcastReceiver 用于接收程序所发出的Broadcast Intent, 也可以说他是一个全局监听器 监听所有程序的广播消息。
广播分为 有序广播 NormalBroadcast 普通广播
优点 效率高,但是接收者不能讲结果传递给下一个接受者 无法终止
OrderedBroadcast 有序广播
优点 可以将数据接着传递给下一个接收者 ,下一个接收者 不仅可以得到广播的数据 还能得到上一个接受者存入的数据 Bundle bundle=getResultExtras(true)可以得到上一个接受者存入的数据;可以设置优先级 让谁先得到广播的消息
但是 如果 前一个接受者停止了广播 下一个接受者就收不到了 调用abortBroadcast()终止广播
System Broadcast: 系统广播
Android系统中内置了多个系统广播,只要涉及到手机的基本操作,基本上都会发出相应的系统广播。如:开启启动,网络状态改变,拍照,屏幕关闭与开启,点亮不足等等。每个系统广播都具有特定的intent-filter,其中主要包括具体的action,系统广播发出后,将被相应的BroadcastReceiver接收。系统广播在系统内部当特定事件发生时,有系统自动发出。
简单的广播实现
广播 注册方式有两种 写法 其一: 静态广播
1:先创建一个类继承抽象类 BroadcastReceiver 并实现抽象方法OnReceive
其中 同过 参数 intent 可以得到发来的广播 通俗的讲就是得到传来的值
public class MyBroadcastreceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { String str=intent.getStringExtra("jing"); Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); Log.d("MyBroadcastreceiver", str); } }
2:静态广播 需要在配置清单中 配置
注意 receiver的名字 是包名加类名 action 的名字 可以随意写 但要与Intent设置的一致
<receiver android:name=".broadcastreceivers.MyBroadcastreceiver"> <intent-filter> <action android:name="jingtai"></action> </intent-filter> </receiver>
3:发广播
Intent intent=new Intent(); intent.putExtra("jing","hellow! jingtaiBroadcastreceiver"); intent.setAction("jingtai"); sendBroadcast(intent);
以上就是简单的 静态广播了
其二:动态广播
1i: 这里 需要用到 IntetnFilter
设置action 名称 需要与 Intent设置的一致 同样需要写个类 继承 BroadcastReceiver
然后实现抽象方法 OnReceive 创建一个实例化对象 注册广播
IntentFilter intentFilter=new IntentFilter(); intentFilter.addAction("dt"); my = new MyBroadcastreceiver(); registerReceiver(my,intentFilter);
2:Intent 设置 主要 action要与 IntentFilter 设置的一致
Intent intenet=new Intent(); intenet.putExtra("dongtai","heloow!我是动态广播哦"); intenet.setAction("dt"); sendBroadcast(intenet);
3:取值 同样 与静态相同
String str=intent.getStringExtra("dongtai"); Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); Log.d("MyBroadcastreceiver", str);
4:取消广播
unregisterReceiver(my);
相关文章推荐
- Android中BroadcastReceiver(异步接收广播Intent)的使用
- Android使用BroadcastReceiver实现手机开机之后显示画面的功能
- Android提高之BroadcastReceiver实例详解
- 详解Android中BroadCastReceiver组件
- Android编程四大组件之BroadcastReceiver(广播接收者)用法实例
- Android开发之BroadcastReceiver用法实例分析
- 广播 BroadCastReceiver
- BroadcastReceiver应用详解
- Android中利用广播接受者简单几步实现拨号显示归属地
- 拦截短信
- Android中BroadcastReceiver理解
- 关于安卓手机开机自启动APP无法成功的问题
- android 监听SDCard安装和卸载的代码
- BroadcastReceiver实现android来去电录音功能(外录)
- 小米手机不支持对去电的拦截解决方案(BroadcastReceiver)
- BroadcastReceiver之开机自启动程序
- 工作笔记(1)--Android平板禁用虚拟按键
- 一步一步的学习BroadCastReceiver
- android广播经典小例子