我正在使用Android的Volley网络库。我想找到一种方式,在一堆请求完成时得到通知,而不是逐个检查所有响应侦听器(我也这样做)。是否有一种简单的方法可以在所有任务完成时从队列中获取回调?
我正在使用Android的Volley网络库。我想找到一种方式,在一堆请求完成时得到通知,而不是逐个检查所有响应侦听器(我也这样做)。是否有一种简单的方法可以在所有任务完成时从队列中获取回调?
int requestPending= 0;
for(int i=0;i<numberOfRequests;i++)
{
requestQueue.add(request);
requestPending++;
}
// For each requestQueue item finished onResponse received, do requestPending --
我找到了另一种适合我的方法。它的效果非常好。
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
final AtomicInteger requestsCounter = new AtomicInteger(0);
for (String data: someArray) {
requestsCounter.incrementAndGet();
queue.add(new StringRequest(
Request.Method.GET,
"https://stackoverflow.com",
response -> {
...some stuff for response
},
error -> {
...catch error here
}
));
queue.addRequestFinishedListener(request -> {
requestsCounter.decrementAndGet();
if (requestsCounter.get() == 0) {
...all requests are done
}
});
}