zoukankan      html  css  js  c++  java
  • 不关联生命周期的 observeForever 方法。

    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公开了。


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

  • 相关阅读:
    __get__,__set__,__delete__
    __getattr__,__setattr__,__delattr__
    json ,pickle
    @property
    类的封装
    super
    继承顺序
    派生组合示例
    类的派生,组合
    class 属性查找
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11384643.html
Copyright © 2011-2022 走看看