關於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

相關文章
相關標籤/搜索