5.2 广播工作原理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将会处于失活状态(no-longer active),Android系统有权在内存资源紧张的 时候回收广播接收器。 小心:不要在onReceive中编写耗时操作,onReceive方法运行于应用的主线 程中,一旦处理耗时操作将会导致ANR错误。 注意:注销广播接收器后广播接收器将不会再收到任何广播数据。
获取广播的对应数据,也就是接收器的onReceive方法将会被回调(调用)。
5.2 Android广播工作原理
4 广播接收原理:
所有的广播均会被发送到ActivityManagerService。 收到广播后,ActivityManagerService从RegisteredReceivers列表中寻找满
将配置文件中的静态配置的接收器注册入ActivityManagerService中。
注册完接收器后,为接收器设置的Action(频道)同时会与广播接收器捆绑 所有的广播接收器都被注册在RegisteredReceivers列表中。 当一个广播发送到ActivityManagerService中,满足广播Action的接收器将会
}
5.2 Android广播工作原理
注册广播接收器的方法与步骤(静态注册API24后取消):
静态注册广播接收器的方法:
广播接收器被注册在AndroidManifest.xml配置文件。
注册广播接收器时需要提供:
广播接收器类全名
广播接收器Action(频道)
<application <receiver
if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction())) { int iType=getAPNType(context); EventData mEventData=new EventData(); mEventData.setEventCode(3); mEventData.setiBatterydata(iType);
使用context. registerReceiver方法注册广播接收器。
注册广播接收器时需要提供:
广播接收器对象
广播接收器Action(频道)
private NetworkStatusReceiver mNetworkStatusReceiver; private void initData() { mNetworkStatusReceiver = new NetworkStatusReceiver(); IntentFilter filter4 = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"); super.registerReceiver(mNetworkStatusReceiver, filter4);
android:name=". PowerConnectReceiver" android:enabled="true" android:exported="true"> <intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> </application>
足当前广播Action的Receiver。 将满足Action的Receiver保存入队列中准备发送广播。 依次发送广播给队列中的Receiver。 Receiver中保存了应用的PID(进程ID)。 Receiver收到ActivityManagerService传递过来的数据。 Receiver的onReceive可以接受到本次数据传递。
5.2 广播工作原理
本章内容
第1节 广播概述 第2节 广播工作原理 第3节 自定义广播 第4节 有序广播
本章目标
理解Android广播的作用与分类。 能熟练开发广播接收器。 理解Android广播的发送、接收器的注册原理。
理解有序广播的运用场合。 理解有序广播与普通广播的区别。
5.2 广播工作原理
5.1 编写广播接收类“NetworkStatusReceiver ”接收广播
继承BroadcastReceiver并重写onReceive
public class NetworkStatusReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) {
5.2 Android广播工作原理
3 广播接收器注册原理:
所有的广播接收器都会被注册到ActivityManagerService中。
registerReceiver方法通过动态方式注册接收器。 PackageMangerService扫描所有Android应用的AndroidManifest.xml
知识点预览
Leabharlann Baidu
#
知识点
1 广播接收器的实现
2 广播接收器生命周期
3 广播接收器工作原理
4 广播接收原理实例
重点 √ √
难点 √ √ √ √
应用
说明
理解广播的生命周期与回调函数。
理解广播保证安全性的方法。
深入理解广播的接收原理。
深入理解广播的发送原理。
5.2 广播工作原理
1 广播接收器的工作流程:
广播接收器的生命周期取决于onReceive。 广播接收器一旦处理完业务,也就是onReceive执行完毕,广播接收器对象
创建接收器 对象
注册接收器 对象
收到广播处 理业务
业务处理完 毕
接收器处于 失活状态
5.2 Android广播工作原理
2 广播注册流程
5.2 Android广播工作原理
注册广播接收器的方法与步骤(动态注册):
广播接收器只有在被注册后才能使用。Android7.0后只提供动态注册。
动态注册广播接收器的方法:
总结:整个广播交互过程中,最主要的角色是扮演“总管”的ActivityManagerService,其 实在Android系统中大量组件间的数据交互与通讯都与以上模式相似。
5.2 Android广播工作原理
4 广播接收流程
5.2 Android广播工作原理
5 课堂实例-查看网络状态?
5.2 Android广播原理
获取广播的对应数据,也就是接收器的onReceive方法将会被回调(调用)。
5.2 Android广播工作原理
4 广播接收原理:
所有的广播均会被发送到ActivityManagerService。 收到广播后,ActivityManagerService从RegisteredReceivers列表中寻找满
将配置文件中的静态配置的接收器注册入ActivityManagerService中。
注册完接收器后,为接收器设置的Action(频道)同时会与广播接收器捆绑 所有的广播接收器都被注册在RegisteredReceivers列表中。 当一个广播发送到ActivityManagerService中,满足广播Action的接收器将会
}
5.2 Android广播工作原理
注册广播接收器的方法与步骤(静态注册API24后取消):
静态注册广播接收器的方法:
广播接收器被注册在AndroidManifest.xml配置文件。
注册广播接收器时需要提供:
广播接收器类全名
广播接收器Action(频道)
<application <receiver
if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction())) { int iType=getAPNType(context); EventData mEventData=new EventData(); mEventData.setEventCode(3); mEventData.setiBatterydata(iType);
使用context. registerReceiver方法注册广播接收器。
注册广播接收器时需要提供:
广播接收器对象
广播接收器Action(频道)
private NetworkStatusReceiver mNetworkStatusReceiver; private void initData() { mNetworkStatusReceiver = new NetworkStatusReceiver(); IntentFilter filter4 = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"); super.registerReceiver(mNetworkStatusReceiver, filter4);
android:name=". PowerConnectReceiver" android:enabled="true" android:exported="true"> <intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> </application>
足当前广播Action的Receiver。 将满足Action的Receiver保存入队列中准备发送广播。 依次发送广播给队列中的Receiver。 Receiver中保存了应用的PID(进程ID)。 Receiver收到ActivityManagerService传递过来的数据。 Receiver的onReceive可以接受到本次数据传递。
5.2 广播工作原理
本章内容
第1节 广播概述 第2节 广播工作原理 第3节 自定义广播 第4节 有序广播
本章目标
理解Android广播的作用与分类。 能熟练开发广播接收器。 理解Android广播的发送、接收器的注册原理。
理解有序广播的运用场合。 理解有序广播与普通广播的区别。
5.2 广播工作原理
5.1 编写广播接收类“NetworkStatusReceiver ”接收广播
继承BroadcastReceiver并重写onReceive
public class NetworkStatusReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) {
5.2 Android广播工作原理
3 广播接收器注册原理:
所有的广播接收器都会被注册到ActivityManagerService中。
registerReceiver方法通过动态方式注册接收器。 PackageMangerService扫描所有Android应用的AndroidManifest.xml
知识点预览
Leabharlann Baidu
#
知识点
1 广播接收器的实现
2 广播接收器生命周期
3 广播接收器工作原理
4 广播接收原理实例
重点 √ √
难点 √ √ √ √
应用
说明
理解广播的生命周期与回调函数。
理解广播保证安全性的方法。
深入理解广播的接收原理。
深入理解广播的发送原理。
5.2 广播工作原理
1 广播接收器的工作流程:
广播接收器的生命周期取决于onReceive。 广播接收器一旦处理完业务,也就是onReceive执行完毕,广播接收器对象
创建接收器 对象
注册接收器 对象
收到广播处 理业务
业务处理完 毕
接收器处于 失活状态
5.2 Android广播工作原理
2 广播注册流程
5.2 Android广播工作原理
注册广播接收器的方法与步骤(动态注册):
广播接收器只有在被注册后才能使用。Android7.0后只提供动态注册。
动态注册广播接收器的方法:
总结:整个广播交互过程中,最主要的角色是扮演“总管”的ActivityManagerService,其 实在Android系统中大量组件间的数据交互与通讯都与以上模式相似。
5.2 Android广播工作原理
4 广播接收流程
5.2 Android广播工作原理
5 课堂实例-查看网络状态?
5.2 Android广播原理