关于Broadcast的基础知识
博客专区 > 刘焱 的博客 > 博客详情
关于Broadcast的基础知识
刘焱 发表于3年前
关于Broadcast的基础知识
  • 发表于 3年前
  • 阅读 39
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 关于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,您看明白了吗?



  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 14
码字总数 14547
×
刘焱
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: