四大组件浅析(三)——BroadcastReceiver
来源:互联网 发布:盗墓笔记宠物进阶数据 编辑:程序博客网 时间:2024/06/04 01:01
BroadcastReceiver(广播接受者)在日常开发中也是会经常用到的,本质上为全局的监听者,其分为两个方面:广播的发送者和广播的接受者,主要是用于应用内接受广播发出的消息并做出反应
应用场景:
不同组件之间的通信(包括应用内/应用外)
Android系统在特定情况下与app之间的通信(电话、网络)
多线程通信
实现原理:
BroadcastReceicer使用观察者模式,基于信息的发布、订阅事件模型
broadcastReveicer将观察者和接受者解耦,使更具拓展性,容易集成
广播的类别:
无序广播(Normal Broadcast)
广播完全异步,可以在同一时间内被任何监听者收到广播消息,效率高,缺点为:接受者不能将处理结果传递给下一个接受者,没有办法停止广播
有序广播(Ordered Broadcast)
接受者按照声明时定义的优先级来依次收到广播,可以终止广播的向下传输,可以将数据传递给下一个接收者
广播的注册方式
静态注册
在mainfest中进行注册
<receiver android:name=".MyReceiver"> <intent-filter> <action android:name="MyReceiver"> </action> </intent-filter></receiver>
动态注册
通过代码进行注册
MyReceiver myReceiver = new MyReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("MyReceiver"); registerReceiver(myReceiver, intentFilter);
发送广播
sendBroadcast()发送无序广播
sendOrderedBroadcast()发送普通广播
发送广播之后,BroadcastReceiver的onReceive()方法会接收到广播,此时可以进行处理
注意:如果BroadcastReceiver的onReceive()方法在10s内不能执行完毕,那程序会认为程序没有响应,造成
ANR,因此不要在onReceive()方法中进行耗时操作
sendOrderBroadcast()方法发送广播时,BroadcastReceiver会根据优先级依次接收到广播,调用BroadcastReceiverde abortReceiver可以停止广播,使用setResultExtras(Bundle)可以将信息传入Broadcast,可以通过getResultExtras’()获取信息
接收系统广播消息
BroadcaseReceiver处理可以接受用户发送的广播之外,还可以接收 系统广播
常见的系统广播Action常亮有:
ACTION_TIME_CHANGED:系统时间被改变。
ACTION_DATE_CHANGED:系统日期被改变。
ACTION_TIMEZONE_CHANGED:系统时区被改变。
ACTION_BOOT_COMPLETED:系统启动完成。
ACTION_PACKAGE_ADDED:系统添加包。
ACTION_PACKAGE_CHANGED:系统的包改变。
ACTION_PACKAGE_REMOVED:系统的包被删除。
ACTION_PACKAGE_RESTARTED:系统的包被重启。
ACTION_PACKAGE_DATA_CLEARED:系统的包数据被清空。
ACTION_BATTERY_CHANGED:电池电量改变。
ACTION_BATTERY_LOW:电池电量低。
ACTION_POWER_CONNECTED:系统连接电源。
ACTION_POWER_DISCONNECTED:系统与电源断开。
ACTION_SHUTDOWN:系统被关闭。
- 四大组件浅析(三)——BroadcastReceiver
- Android四大组件—BroadcastReceiver
- Android四大组件——BroadcastReceiver
- 四大组件 — BroadCastReceiver广播接收者
- Android四大组件之—BroadcastReceiver
- Android 四大组件之三BroadCastReceiver
- Android 四大组件学习之BroadcastReceiver三
- Android四大组件之三:BroadcastReceiver
- Android四大组件之三:BroadcastReceiver总结
- 安卓四大组件三之-broadcastreceiver
- 安卓四大组件之——BroadcastReceiver详解
- Android学习之四大组件(四)——BroadcastReceiver
- Android基础——四大组件之BroadcastReceiver
- 安卓四大组件——BroadcastReceiver(广播)
- Android开发——四大组件之BroadcastReceiver概念
- Android四大组件——BroadCastReceiver用法实例.txt
- Android四大组件:广播机制——BroadcastReceiver
- Android——四大组件之一:BroadcastReceiver 广播接收器
- HTML5 APP开发与原生态APP比较有什么好处?
- 签到题-D
- 坐标转换convertRect:toView
- 基本VLAN特性配置与管理——1
- PD到底是要做全职保姆式_还是要做合作伙伴式?
- 四大组件浅析(三)——BroadcastReceiver
- Android通过Intent方式调用相机拍照取得图片
- 使用API文档对数组中元素进行升序排列
- Cuda编程结构《1》
- Glide的使用大法与内伤治疗方案
- jboss4 在eclipse 中一直处于starting状态
- vue-cli的线上部署
- 基于PHPExcel导出Excel表格
- jdbc url格式 数据库连接URL