所以我有三个来自MainActivity的retrofit web requests
,每个调用都不会相互依赖。
所以假设第一个是getImages()
,第二个getCountry()
,最后一个getUser()
但有一个条件,即在所有这些请求成功执行之前,不应加载下一个活动。
所以我在这里有两个选择
1(创建嵌套请求并在每个请求上成功执行每个请求 响应。这似乎是可靠的,但因此这些是我需要的异步调用 以优化时间。
2( 创建一个变量并将其递增 每次成功调用,这种方法似乎节省时间,但我不确定 这是很好的做法。
那么有什么方法可以完成这项工作......而且我没有使用RxAndroid
您可以使用MediatorLiveData
.对于每个请求声明一个LiveData
boolean
标志,每次请求完成时,检查MediatorLiveData
中的所有三个标志,如果它们都true
设置MediatorLiveData
true
则观察它并进行下一个活动
您可以从文档中获取详细信息和代码示例
-
所有 itemList 对象都使用 ObservableDataset 实现
-
MainActivity 实现 Observer。
-
在OnChange方法中; 当 cities/images/users 加载时,isLoadedCities/isLoadedImages/isLoadedUsers 设置为 true,然后触发 inValidate((。
-
无效方法; 检查所有 IsLoaded 标志是否为真,然后触发 doSomething((