[英]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.