java - 如何使用 Volley 获取并等待来自多个 url 的数据

标签 java android callback android-volley

在我的应用程序中,功能如下:

  1. 首先我正在创建 JsonObjectRequest使用 Volley 。这会返回 JSON 数据。 这里我用了this回调技术,以确保我收到响应,然后进一步处理它。

  2. 从上面 (1) 收到的 JSON 数据中,我获得了多个 URL,我需要从中获取更多数据。在上面第一个请求 (1) 的 onResponse 中,我调用一个方法来创建新的请求队列,并为所有这些单独的 URL 创建请求并将其添加到同一队列中。我的最终目标是在获得这一步的所有数据(即多个 URL)后显示数据。

发生了什么: 我能够从上面的 (1) 获取数据并正确显示,但它不会等待从上面的步骤 (2) 下载数据。我想我无法将 (2) 中的请求添加到 (1) 的请求队列中,因为首先我需要请求 1 中的 url 来在请求 2 中处理。

我如何在我的应用程序中等待步骤 (2) 的数据下载完成?

enter image description here

如果问题不清楚,请告诉我。我会尝试添加更多详细信息。

最佳答案

您可以尝试其中之一...

  1. 检查 Volley - http request in blocking way 如果您想处理 RequestFuture 对象。
  2. 维护一个计数器,一旦所有请求完成并且计数器设置为所需值,您就可以进一步处理。如下所示:

不确定您是否喜欢这个,但这只是一个想法。

call("url", callback(){
     ++counter;
   if(counter == DESIRED_VALUE )
      displayData();
});

计数器是一个 AtomicInteger

关于java - 如何使用 Volley 获取并等待来自多个 url 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38586690/

相关文章:

javascript - ASYNC AJAX CALLBACK 遇到问题

java - Maven,失去本地依赖 |无法解决项目的依赖关系

java - 膨胀 Facebook 登录按钮时出错。

android - 如何在 firebase android 应用程序中分离两个不同的用户?

c++ - Iphone、回调和 objective-c

javascript - Jasmine spy 功能在回调中不起作用

java.util.logging.Logger 与根 Logger 具有不同的级别

java - 主要似乎跳过了我的方法之一

Android:清除编辑文本时清除键盘输入

android - SQLite 更新返回受影响的行数,但数据未更新