有序廣播 sendOrderedBroadcast

2021-09-10 21:55:46 字數 1923 閱讀 9856

參考有序廣播,從優先級別最高的廣播接收器開始接收,接收完了如果沒有丟棄,就下傳給下乙個次高優先順序別的廣播接收器進行處理,依次類推,直到最後。

如果多個應用程式設定的優先級別相同,執行順序不確定,如果沒有設定優先順序,預設是0。

sendorderedbroadcast

(intent,null)

;

作用是:傳送ordered broadcast

sendorderedbroadcast

(intent, receiverpermission, resultreceiver,

scheduler, initialcode, initialdata, initialextras)

;

作用是:傳送ordered broadcast

引數 resultreceiver,可以自己重寫乙個類,作為乙個最終的receive 最後都能夠接收到廣播,最終的receiver 不需要再清單檔案裡面配置,引數 initialdata可以作為傳輸的資料。

## 靜態廣播 和 動態廣播 都可以設定優先順序

靜態註冊

android:priority=

"10"

動態註冊

intentfilter.

setpriority

(100

);

作用是:設定優先順序,優先順序越高的越早能接收到廣播。(取值範圍:-1000~10000)

setresultextras

(bundle)

bundle bundle =

getresultextras

(true

)

abortbroadcast

()

作用是:中斷廣播,不會再響比它有優先順序低得廣播再傳播下去了

public

class

sendorderbroadcastactivity

extends

activity

endreceiver myreceiver;

private

void

initreceiver3()

private

void

initreceiver2()

private

void

initreceiver1()

@override

protected

void

ondestroy()

@onclick

(r.id.order_btn)

public

void

onviewclicked()

}, null,

0, null, null);}

private

class

endreceiver

extends

broadcastreceiver

}public

class

myreceiver

extends

broadcastreceiver

}public

class

myreceiver2

extends

broadcastreceiver

}}

log輸出

myreceiver onreceive

endreceiver onreceive:優先順序高的廣播存入數值

myreceiver2 onreceive:優先順序高的廣播存入數值

最後的廣播

broadcastreceiver的有序廣播和優先順序:

有序廣播,粘性廣播

1.註冊多個receiver,要同時使用同乙個action,設定priority來指定優先順序。2.傳送有序廣播 sendorderedbroadcast intent,null intent intent newintent www.wangpeng intent.putextra name 我是...

有序廣播和無序廣播

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

Android中有序廣播和無序廣播

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