有序廣播和無序廣播的區別

2021-07-23 15:54:55 字數 666 閱讀 1483

1.無序廣播

通過context.sendbroadcast()方法來傳送,它是完全非同步的。

所有的receivers(接收器)的執行順序不確定,因此所有的receivers(接收器)接收broadcast的順序不確定。

這種方式效率更高,但是broadcastreceiver無法使用setresult系列、getresult系列及abort

broadcast(中止)系列api。

廣播不能被終止,資料不能被修改。

2.有序廣播

有序廣播,即從優先級別最高的廣播接收器開始接收,接收完了如果沒有丟棄,就下傳給下乙個次高優先順序別的廣播接收器進行處理,依次類推,直到最後。如果多個應用程式設定的優先級別相同,則誰先註冊的廣播,誰就可以優先接收到廣播。通過context.sendorderbroadcast()方法來傳送,sendorderedbroadcast(intent, receiverpermission, resultreceiver, scheduler, initialcode, initialdata, initialextras);,其中的引數resultreceiver,可以自己重寫乙個類,作為乙個最終的receive 最後都能夠接收到廣播,最終的receiver 不需要再清單檔案裡面配置,initialdata可以作為傳輸的資料

廣播可以被終止,資料傳輸過程中可以被修改。

有序廣播和無序廣播

有序廣播可以指定廣播接收者的順序,無序廣播是大家一起接收匹配到的進行操作就行。有序廣播可以中斷,sendorderedbroadcast 無序廣播不可以中斷 sendbroadcast intent 用 示例說明 param view 傳送無序廣播的按鈕的功能 public void sendbro...

Android中有序廣播和無序廣播

broadcastreceiver所對應的廣播分兩類 有序廣播和無序廣播。無序廣播 通過context.sendbroadcast 方法來傳送,它是完全非同步的。所有的receivers 接收器 的執行順序不確定,因此所有的receivers 接收器 接收broadcast的順序不確定。這種方式效率...

Android全域性廣播(無序,有序)

寫這篇文章的原因 最近博主在帶兩個小白學android,在教廣播的過程中發現了一些問題 大概如下 1.android8.0以上廣播需要動態註冊 靜態註冊無效 2.android8.0以上兩個應用間按照以前的操作傳送廣播後在另乙個沒辦法接收到廣播的情況 3.出現了廣播接收者的搶先或重複問題 在文章最後...