I searched about this topic and I didn't found something to clear my doubts. My problem is that I must fill some form fields with data that I have in a server using a rest api.
Basically I throw 3 different independent requests, as they are independent I throw them with async functions. i.e:
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();
}
});
I don't know how to achieve the following. I need to send another request that depends on the info gathered by the 3 previous request. Is there an elegant way to detect that the 3 previous requests have finished and after that launch my last request?
I tried to put a boolean flag in each request callback and block my app with a for loop until all the flags are true but I think it's a bad code.
Thank you very much
put
listener
for those request forcounting the responses
(it is either onResponse or onErrorResponse). If count isreached to 3
thensend 4th request
.