java - 使用 Java 管理 API 调用 [Android]

标签 java android rx-java retrofit2

我正在尝试管理请求调用。这是我的情况。我正在使用 retrofit 2RxJava。我的 Fragment 中的 onResume 方法有一个 API 请求调用。当我在应用程序中切换选项卡或旋转手机时,onResume 方法会再次被调用,如果调用速度很慢,我会发送两个相同的请求并得到 2 个相同的响应。你知道我该如何防止这种情况吗?

如果第一个 API 调用正在进行,我不想发送第二个 API 调用,或者如果调用相同,则以某种方式将 2 个响应合并为一个。

谢谢

最佳答案

您可以创建一个用于包装 api 的标志,并在请求时将其设置为 false,在响应时将其设置为 true

private boolean canRequest = true;
void onResume(){
if(canRequest){
   canRequest = false;
   fetchDataUsingRetroFit(new ResponseCallBack(){
       void onResponse(){
         canRequest = true;
       }
    });
}
}

关于java - 使用 Java 管理 API 调用 [Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792185/

相关文章:

Android + RxJava - 从数据库和网络服务加载数据

java - jfreechart-fx 1.0.1 图表是否可以与 fxgraphics2d 构建和呈现的图像进行交互?

java - Spring 4 MVC - Rest 服务 - 在 bean 中使用默认值

java - 什么时候在 Java 中使用 printf 语句?

java - 在运行时加载 JRuby 和 ClassLoader 泄漏

java - 如何在 fragment 中隐藏工具栏?

android - RxJava 结合多个可观察对象的弹性方式

android - CalledFromWrongThreadException 即使使用 AndroidSchedulers.mainThread()

android - 自包含测试库项目找不到库类

android - 令人困惑的PNG strip 解决方案