在我的应用程序中,功能如下:
首先我正在创建 JsonObjectRequest使用 Volley 。这会返回 JSON 数据。 这里我用了this回调技术,以确保我收到响应,然后进一步处理它。
从上面 (1) 收到的 JSON 数据中,我获得了多个 URL,我需要从中获取更多数据。在上面第一个请求 (1) 的 onResponse 中,我调用一个方法来创建新的请求队列,并为所有这些单独的 URL 创建请求并将其添加到同一队列中。我的最终目标是在获得这一步的所有数据(即多个 URL)后显示数据。
发生了什么: 我能够从上面的 (1) 获取数据并正确显示,但它不会等待从上面的步骤 (2) 下载数据。我想我无法将 (2) 中的请求添加到 (1) 的请求队列中,因为首先我需要请求 1 中的 url 来在请求 2 中处理。
我如何在我的应用程序中等待步骤 (2) 的数据下载完成?
如果问题不清楚,请告诉我。我会尝试添加更多详细信息。
最佳答案
您可以尝试其中之一...
- 检查 Volley - http request in blocking way 如果您想处理 RequestFuture 对象。
- 维护一个计数器,一旦所有请求完成并且计数器设置为所需值,您就可以进一步处理。如下所示:
不确定您是否喜欢这个,但这只是一个想法。
call("url", callback(){
++counter;
if(counter == DESIRED_VALUE )
displayData();
});
计数器是一个 AtomicInteger
关于java - 如何使用 Volley 获取并等待来自多个 url 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38586690/