首页 > 其他 > 详细

不关联生命周期的 observeForever 方法。

时间:2019-08-20 19:15:39      阅读:712      评论:0      收藏:0      [点我收藏+]

LiveData.java
------------------------------
@MainThread
public void observeForever(@NonNull Observer<? super T> observer) {
assertMainThread("observeForever");
AlwaysActiveObserver wrapper = new AlwaysActiveObserver(observer);
ObserverWrapper existing = mObservers.putIfAbsent(observer, wrapper);
if (existing != null && existing instanceof LiveData.LifecycleBoundObserver) {
throw new IllegalArgumentException("Cannot add the same observer"
+ " with different lifecycles");
}
if (existing != null) {
return;
}
wrapper.activeStateChanged(true);
}

private class AlwaysActiveObserver extends ObserverWrapper {

AlwaysActiveObserver(Observer<? super T> observer) {
super(observer);
}

@Override
boolean shouldBeActive() {
return true;
}
}
MutableLiveData 继承自 LiveData,把setValue(T) 和 getValue(T) 方法public公开了。


————————————————

不关联生命周期的 observeForever 方法。

原文:https://www.cnblogs.com/hyhy904/p/11384643.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!