- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Google NetworkBoundResource 类中,我无法理解 MediatorLiveData 的 addSource() 和 removeSource() 的顺序被使用。
例如--在这个构造函数中我无法理解
a)为什么result.removeSource(dbSource);在result.addSource(dbSource, data);之后使用。我知道 addSource() 用于开始监听 LiveData,removeSource() 用于停止监听 LiveData。但是如果我们立即停止它,为什么我们开始监听 LiveData。
protected NetworkBoundResource() {
result.setValue(Resource.loading(null));
// Always load the data from DB intially so that we have
LiveData<T> dbSource = loadFromDb();
// Fetch the data from the network and add it to the resource
result.addSource(dbSource, data -> {
result.removeSource(dbSource);
if (shouldFetch()) {
fetchFromNetwork(dbSource);
} else {
result.addSource(dbSource, newData -> {
if(null != newData)
result.setValue(Resource.success(newData)) ;
});
}
});
}
或者我们不能像这样使用上面的构造函数
protected NetworkBoundResource() {
result.setValue(Resource.loading(null));
// Always load the data from DB intially so that we have
LiveData<T> dbSource = loadFromDb();
// Fetch the data from network and add it to the resource
result.addSource(dbSource, data -> {
if (shouldFetch()) {
fetchFromNetwork(dbSource);
result.removeSource(dbSource);
} else {
if(null != data)
result.setValue(Resource.success(data)) ;
}
});
}
最佳答案
是的,是的,也可以使用这个。
// Fetch the data from network and add it to the resource
result.addSource(dbSource, data -> {
if (shouldFetch()) {
fetchFromNetwork(dbSource);
result.removeSource(dbSource);
} else {
if(null != data)
result.setValue(Resource.success(data)) ;
}
});
关于java - NetworkBoundResource 类中 MediatorLiveData 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58902127/
我正在开发一个项目,如果登录是下载一些文件成功,然后打开主 Activity 。如果不是这样,则不会登录也不下载文件并提示用户成功登录下载所需的文件。 失败后,如果用户写入正确的用户名和密码,则它应该
我对以下代码为何不起作用感到有点困惑: MutableLiveData mutableTest = new MutableLiveData<>(); MediatorLiveData mediator
问题简介:当使用 android 随 android jetpack 添加的 MediatorLiveData 时,我发现自己经常从各个来源调用相同的函数。例如,这可能是因为,每当更新源时,我都必须检
在我的应用程序中,我尝试使用 MediatorLiveData 来监听实时数据的变化。由于涉及数据库操作,我使用这样的执行程序服务。 MediatorLiveData mediatorLive
将 MediatorLiveData 与多个源一起使用的最佳做法是什么? 我在 ViewModel 中有一个 MediatorLiveData,可从 View 访问数据,最终应该显示该数据。 Medi
我有一个使用三个 LiveData 源的 MediatorLiveData。当它们中的任何一个发出一个新值并且我每个都有一个时,我使用这三个值来生成 UI 的输出。 其中两个来源是关于如何对列表进行排
在 Google NetworkBoundResource 类中,我无法理解 MediatorLiveData 的 addSource() 和 removeSource() 的顺序被使用。 例如--在
正如标题所说。我有两个 livedata 对象,它们从 API 获取一些数据。我想等待两个 livedata 完成数据获取,然后再对它们的值进行一些操作。这是我到目前为止所拥有的: public cl
因此,我尝试将 MediatorLiveData 用于通过使用 libphonenumber 将 ISO 国家/地区代码(例如“美国”)转换为国家/地区调用代码(例如“+1”)的相当简单的用例。结果屏
我想在 MediatorLiveData 中组合多个数据源。不幸的是,目前还没有很多例子。所以在我的 ViewModel 中我有 //all lists have been declared befo
我在我的应用程序上使用 MVVM + LiveData + Dagger 2.11。在 SignInFragment 上单击 TextView 向服务器发送请求并在 snackbar 上显示响应。它在
我正在使用 Transformations.switchMap在我的 ViewModel 中,所以在我的 fragment 中观察到的 LiveData 集合会对 code 参数的更改使用react。
哪种方法更推荐组合多个 LiveData:使用 MediatorLiveData 或 switchMap? // MediatorLiveData approach fun combine(
不确定发生了什么。我正在运行两个查询,然后使用 MediatorLiveData 和 Transformations.map 对其进行合并和转换。我将这个几乎完全相同的代码用于其他两个查询而没有问题。
我搜索了很多,但没有找到问题的清晰答案: MediatorLiveData 和 MutableLiveData 有什么区别? 使用它们的合适条件是什么。 最佳答案 首先我们需要知道MutableLiv
我是一名优秀的程序员,十分优秀!