1

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

所以让我们说第一个是getImages(),第二个getCountry()和最后一个getUser()

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

所以我在这里有两个选择

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

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

4

2 回答 2

2

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

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

于 2018-02-25T08:29:58.550 回答
0
  1. 所有 itemList 对象都使用 ObservableDataset 实现

  2. MainActivity 实现观察者。

  3. 在 OnChange 方法中;当加载城市/图像/用户时,isLoadedCities/isLoadedImages/isLoadedUsers 设置为 true,然后触发 inValidate()。

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

于 2018-02-25T06:12:31.027 回答