安卓四大组件之广播(BroadCastReceiver)
2016-09-16 09:53
781 查看
BroadCastReceiver
是什么?
1.安卓四大组件之一
2.广播接收者对象(接收系统或应用发出的广播)
android中的广播事件有两种:
1)系统广播
-ACTION_BOOT_COMPLETED(系统启动完成后触发)
-ACTION_TIME_CHANGED(系统时间改变时触发)
-
-ACTION_BATTERY_LOW(电量低时触发)
注:广播接收器没有用户界面 但它们可以启动一个activity来响应它们收到的信息,
或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。
2)自定义广播:(注册及编写)
编写:继承BroadCastReceiver onReceive(在此方法中可以做其他操作:例如启动service)
--静态注册 在AndroidManifest.xml文件中
例如:系统启动完成后的广播
- <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
使用权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
--动态注册
MyReceiver mReceiver=new MyReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction("com.tarena.broadcast");
//
registerReceiver(mReceiver, filter);//注册广播,
注:动态组注册时的生命周期与activity周期有关,在销毁页面销毁时要解除绑定unregisterReceiver(mReceiver) 也就是说在哪个页面注册在哪个页面解除
两种注册类型的区别是:
1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被 系统调用自动运行。
在Android 的广播机制中,动态注册的优先级是要高于静态注册优先级的
3. 普通广播
发送:sendBroadCast(Intent intent);
发送:sendBroadCast(Intent intent,String receiverPermission);
如果发送时指定了接收权限,则只有在AndroidManifest.xml中用<uses- permission>标签声明了拥有此权限的BroascastReceiver才会有可能接收到发送来的Broadcast。
*同样,若在注册BroadcastReceiver时指定了可接收的Broadcast的权限,则只有在AndroidManifest.xml中 用<uses-permission>标签声明了,拥有此权限的Context对象所发送的Broadcast才能被这个 BroadcastReceiver所接收。
有序广播(priority)(100-1000)
发送:sendOrderBroadCast(Intent intent,String receiverPermission)
可以使用abortBroadCast();终止广播传递
如果BroadcastReceiver是代码中注册的话,且其intent-filter拥有相同android:priority属性
的话,先注册的将先收到广播。
本地广播(只能在本进程内部应用)不能通过静态注册的方式注册
借助借助LocalBroadCastManager
1)获得本地广播对象
a)localBroadcastManager lbManager=LocalBroadcastManager.getInstance(this);
2)注册广播为本地广播
a)LbManager.registerReceiver(receive, filter)
3)发送广播
a)lbManager.sendBroadcast(intent)
4)关闭广播
b)lbManager.unregisterReceiver(receiver);
是什么?
1.安卓四大组件之一
2.广播接收者对象(接收系统或应用发出的广播)
android中的广播事件有两种:
1)系统广播
-ACTION_BOOT_COMPLETED(系统启动完成后触发)
-ACTION_TIME_CHANGED(系统时间改变时触发)
-
-ACTION_BATTERY_LOW(电量低时触发)
注:广播接收器没有用户界面 但它们可以启动一个activity来响应它们收到的信息,
或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。
2)自定义广播:(注册及编写)
编写:继承BroadCastReceiver onReceive(在此方法中可以做其他操作:例如启动service)
--静态注册 在AndroidManifest.xml文件中
例如:系统启动完成后的广播
- <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
使用权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
--动态注册
MyReceiver mReceiver=new MyReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction("com.tarena.broadcast");
//
registerReceiver(mReceiver, filter);//注册广播,
注:动态组注册时的生命周期与activity周期有关,在销毁页面销毁时要解除绑定unregisterReceiver(mReceiver) 也就是说在哪个页面注册在哪个页面解除
两种注册类型的区别是:
1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被 系统调用自动运行。
在Android 的广播机制中,动态注册的优先级是要高于静态注册优先级的
3. 普通广播
发送:sendBroadCast(Intent intent);
发送:sendBroadCast(Intent intent,String receiverPermission);
如果发送时指定了接收权限,则只有在AndroidManifest.xml中用<uses- permission>标签声明了拥有此权限的BroascastReceiver才会有可能接收到发送来的Broadcast。
*同样,若在注册BroadcastReceiver时指定了可接收的Broadcast的权限,则只有在AndroidManifest.xml中 用<uses-permission>标签声明了,拥有此权限的Context对象所发送的Broadcast才能被这个 BroadcastReceiver所接收。
有序广播(priority)(100-1000)
发送:sendOrderBroadCast(Intent intent,String receiverPermission)
可以使用abortBroadCast();终止广播传递
如果BroadcastReceiver是代码中注册的话,且其intent-filter拥有相同android:priority属性
的话,先注册的将先收到广播。
本地广播(只能在本进程内部应用)不能通过静态注册的方式注册
借助借助LocalBroadCastManager
1)获得本地广播对象
a)localBroadcastManager lbManager=LocalBroadcastManager.getInstance(this);
2)注册广播为本地广播
a)LbManager.registerReceiver(receive, filter)
3)发送广播
a)lbManager.sendBroadcast(intent)
4)关闭广播
b)lbManager.unregisterReceiver(receiver);
相关文章推荐
- Android开发--四大组件之BroadcastReceiver广播接收器
- Android四大基本组件之一 ,广播(broadcast receiver)---无序广播
- Android四大组件之BroadcastReceiver(广播)简单总结
- Android 四大组件之BroadcastReceiver(发送有序无序广播)
- 【Android学习之道】 四大组件之广播接收器Broadcast Receiver
- Android开发——四大组件BroadcastReceiver实例广播事件的拦截转发
- Android四大组件BroadcastReceiver 广播接收者
- 四大组件之BroadcastReceiver(广播)
- 四大组件之BroadcastReceiver(广播接收者)
- 四大组件之BroadcastReceiver(一)-自定义“收音机”与发送“广播”
- Android四大组件之四:BroadcastReceiver 广播接收器
- 四大组件之BroadcastReceiver(二)-使用权限和常用的系统广播
- Android四大组件之一:BroadcastReceiver(广播接收者)
- Android四大组件之广播接收者(BroadcastReceiver)
- 安卓基础第七天(四大组件之BroadcastReceiver,样式主题,国际化,对话框)
- Android 四大组件之一 :BroadCastReceiver 广播接收器详解
- Android四大组件之Broadcast(广播接收BroadcastReceiver)
- Android四大基本组件之一 ,广播(broadcast receiver)---有序广播
- [Android四大组件] Broadcast Receiver 广播
- android开发步步为营之38:四大组件之BroadcastReceiver接收广播