簡體   English   中英

多個 LiveData 觀察者調用序列

[英]Multiple LiveData observer call sequence

假設我有一個 LiveData l和多個觀察者o1, o2, o3觀察l l的值改變時,觀察者被調用的順序是什么? 是觀察者依附於l的順序嗎? 或者它是非確定性的?

我期待前者。

LiveData使用SafeIterableMap.iteratorWithAdditions()迭代其觀察者並通知他們。 文檔將SafeIterableMap描述為“偽裝成地圖的 LinkedList”。

從源代碼來看,它似乎迭代了所有觀察者並通知他們有關數據的更改。

for (Iterator<Map.Entry<Observer<? super T>, ObserverWrapper>> iterator =
                        mObservers.iteratorWithAdditions(); iterator.hasNext(); ) {
                    considerNotify(iterator.next().getValue());
                    if (mDispatchInvalidated) {
                        break;
                    }
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM