Android-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后都使用动态注册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值