下面是我在我的存储库中的方法:
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 对象没有按预期工作吗?