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

标签 android retrofit android-livedata

所以我有三个 retrofit web requestsMainActivity 调用,每个调用都不会相互依赖。

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

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

所以我有两个选择

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

那么我有什么办法可以完成这件事吗? .而且我没有使用 RxAndroid

最佳答案

您可以使用 MediatorLiveData。为每个请求声明一个 LiveData boolean 标志,每次请求完成时检查 MediatorLiveData 中的所有三个标志,如果它们都是 true 设置 MediatorLiveData true 然后观察它并进行下一个 Activity

您可以从 documentation 获取详细信息和代码示例

关于android - 在 android 中使用 Retrofit 和 LiveData 执行一系列异步 Web 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845761/

相关文章:

android - 改造中的动态路径

java - 运行应用程序时创建字符串

java - 如何将 fragment 设置为 BottomNavigation 的默认 fragment ?

java - 安卓改造失败()

android - 在处理 MVP 模式时如何使用 Retrofit call.enqueue() 方法(正确的方法)

java - 如何在热敏打印机上打印大图像

android - 在android Activity生命周期中进行Retrofit以保持数据新鲜

android - 如何使用 LiveData 观察共享偏好的变化?

java - Observable 数据绑定(bind) Observable 与 LiveData 在配置更改时具有不同的结果

android - 建议在 View 模型 android kotlin 的实时数据中使用 getter 或 equals