下面是我存储库中的方法:
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对象无法正常工作吗?
知道我的MediatorLiveData对象为什么不能正常工作的任何想法吗?