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