MediatorLiveData在addSource观察到的LiveData返回之前调用旧数据

问题描述 投票:1回答:1

下面是我存储库中的方法:

public LiveData<Trail> getRandomTrail() {
    final LiveData<Trail> currentRandomTrail = trailDao.getRandomTrail(getMaxRefreshTime());

    randomTrail.addSource(currentRandomTrail, trail -> {
        if (trail == null) {
            loadTrailsFromNetwork();
        } else {
            randomTrail.removeSource(currentRandomTrail);
            randomTrail.postValue(trail);
        }
    });
    return randomTrail;
}

此问题是UI会短暂显示过时的数据,但我希望MediatorLiveData对象randomTrail等待,直到currentRandomTrail返回其值。首先显示过时的数据,然后更新MediatorLiveData对象。知道为什么我的MediatorLiveData对象无法正常工作吗?

android mvvm android-livedata mediatorlivedata
1个回答
1
投票

知道我的MediatorLiveData对象为什么不能正常工作的任何想法吗?

© www.soinside.com 2019 - 2024. All rights reserved.