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

时间:2016-07-26 09:57:12

标签: java android callback android-volley

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

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

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

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

    我如何在申请中等待步骤(2)完成数据下载?

    enter image description here

    如果问题不明确,请告诉我。我会尝试添加更多细节。

1 个答案:

答案 0 :(得分:2)

你可以尝试其中一种......

  1. 检查 Volley - http request in blocking way 如果你想处理 RequestFuture 对象。
  2. 维护计数器,一旦所有请求完成并且计数器设置为所需值,您可以进一步处理。如下所示:
  3. 不确定你是否喜欢这个,但只是想一想。

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

    counter是AtomicInteger