繁体   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