热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

AndroidBroadcast面试题

问:使用过广播吗?答:这个肯定是会用到的,broadcast是将数据从一个节点发送到其他各个节点上去,因此我

问:使用过广播吗?


答:这个肯定是会用到的,broadcast 是将数据从一个节点发送到其他各个节点上去,因此我们在开发中会经常使用。
①   做{XX项目}的时候,APP内部组件的通信就是用的广播,当然也可以跨进程。
②   多线程间的通讯咱们也用的广播。
③   当然有些和Android系统的交互也用到了广播,比如电话呼入和判断网络是否可用的时候。

 

问:了解广播吗?


答:
广播用到了观察者模式,基于消息的发布 / 订阅事件模型
其中有三个角色:
(1)消息订阅者(广播接收者)  
(2)消息发布者(广播发布者)
(3)消息中心(AMS,即Activity Manager Service)

咱暂且简称为订阅者、发布者和AMS吧
 

步骤:
订阅者通过Binder机制在AMS里注册
发布者通过Binder机制异步给AMS发送广播
AMS根据发布者的要求找到对应的订阅者
AMS发送广播到对应的订阅者的消息循环队列中
订阅者通过消息循环拿到广播,并回调onReceive


问:使用过广播吗遇到过什么问题吗?


答:
1、主要是一些版本的问题
2、比如8.0广播取消了很多静态注册,通过判断8.0后都使用动态注册


推荐阅读
author-avatar
麦土豆1937
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有