在Android中使用Retrofit和LiveData执行一系列异步Web请求



所以我有三个来自MainActivityretrofit web requests,每个调用都不会相互依赖。

所以假设第一个是getImages(),第二个getCountry(),最后一个getUser()

但有一个条件,即在所有这些请求成功执行之前,不应加载下一个活动。

所以我在这里有两个选择

1(创建嵌套请求并在每个请求上成功执行每个请求 响应。这似乎是可靠的,但因此这些是我需要的异步调用 以优化时间。
2( 创建一个变量并将其递增 每次成功调用,这种方法似乎节省时间,但我不确定 这是很好的做法。

那么有什么方法可以完成这项工作......而且我没有使用RxAndroid

您可以使用MediatorLiveData.对于每个请求声明一个LiveDataboolean标志,每次请求完成时,检查MediatorLiveData中的所有三个标志,如果它们都true设置MediatorLiveDatatrue则观察它并进行下一个活动

您可以从文档中获取详细信息和代码示例

  1. 所有 itemList 对象都使用 ObservableDataset 实现

  2. MainActivity 实现 Observer。

  3. 在OnChange方法中; 当 cities/images/users 加载时,isLoadedCities/isLoadedImages/isLoadedUsers 设置为 true,然后触发 inValidate((。

  4. 无效方法; 检查所有 IsLoaded 标志是否为真,然后触发 doSomething((

最新更新