关于Broadcast的基础知识

关于Broadcast的基础知识异步

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

    一、广播分为时序广播(order broadcast)和非时序广播(parell broadcast),还有一种叫作粘性广播(stick broadcast)----其实和前二者没太多关系,并且也不影响对于broadcast timeout的理解,能够先放着无论博客

    二、非order的处理是异步的,order的是同步的(所以,加入了timeout机制ast

    三、如何区分一个广播是时序的仍是非时序的?基础

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

       (2)动态注册的receiver,若是发送时,调用的是sendBroadcast()则必定非时序的,但若是是sendOrderBroadcast()则必定是时序的。总结

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

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

相关文章
相关标签/搜索