码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-08-20 18:48:58      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:rap   setvalue   EDA   super   方法   lifecycle   hang   abs   生命周期   

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 方法。

标签:rap   setvalue   EDA   super   方法   lifecycle   hang   abs   生命周期   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!