关于Broadcast的基础知识

关于Broadcast的基础知识

    关于Broadcast的基础知识,网上已经有很多不同的版本了,这里推荐罗升阳的,大概的流程上的东西还是讲到了的。那么,在这里,鄙人只是提出一些基本的知识点出来,作为普及,或者不想看长篇累犊的博客的同学看的。

    1、广播分为时序广播(order broadcast)和非时序广播(parell broadcast),还有一种叫做粘性广播(stick broadcast)----其实和前两者没太多关系,而且也不影响对于broadcast timeout的理解,可以先放着不管

    2、非order的处理是异步的,order的是同步的(因此,加入了timeout机制

    3、如何区分一个广播是时序的还是非时序的?

       (1)静态注册的receiver,其被发送的广播一定是order的

       (2)动态注册的receiver,如果发送时,调用的是sendBroadcast()则一定非时序的,但如果是sendOrderBroadcast()则一定是时序的。

         小小总结一下:大部分广播的发送都采用了order的机制,只有动态注册的receiver才有可能因为发送广播时调用的是sendBroadcast才可能为非order的了。而一个“广播--接收--应答”的持续时间只有10s(正常情况下),所以如果我们在receiver的onReceive()中做太多事情的话,很可能会引起timeout而出现Anr Dialog。而一旦ANR了,那么你的某些依赖广播的receiver去执行的功能可能就不行了。

       关于广播分类以及是否ANR,您看明白了吗?



转载于:https://my.oschina.net/u/217380/blog/321149

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值