我搜索了这个主题,但我没有发现一些可以解决我怀疑的问题。我的问题是我必须使用rest api在服务器中填写一些表单字段和数据。
基本上我抛出3个不同的独立请求,因为它们是独立的,我用异步函数抛出它们。即:
JsonArrayRequest req = new JsonArrayRequest(URL, new Response.Listener<JSONArray> () {
@Override
public void onResponse(JSONArray response) {
try{
//My code to compound a list from JSON response
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("INFO:", "error consultando api");
error.printStackTrace();
}
});
我不知道如何实现以下目标。我需要发送另一个请求,该请求取决于前一个请求收集的信息。是否有一种优雅的方法可以检测到之前的3个请求已经完成,并且在启动我的上一个请求之后?
我试图在每个请求回调中放置一个布尔标志,并使用for循环阻止我的应用程序,直到所有标志都为真,但我认为这是一个错误的代码。
非常感谢
答案 0 :(得分:2)
将listener
放入counting the responses
的请求中(它是onResponse或onErrorResponse)。如果计数为reached to 3
,则为send 4th request
。