Context : networking(http request and response).
My question has two parts - one about volley
and one about AsyncTask
.
I'm learning to implement httpConnection
using volley
and AsyncTask
, so please bear with me.
My question is, in what order the callbacks are called, after getting response from network? (In the case of volley
and AsyncTask
)
Are callbacks executed sequentially?
Consider this scenario,
I have 2 AsyncTask
s. After getting response form network at same time, in what order callback will be called in postExecute()
? Will both callbacks to UI thread will occur simultaneously as 2 Asynctask
s are in seperate threads? or will they be executed sequentially?
I have read these SO posts,
can-i-do-a-synchronous-request-with-volley
multiple-asynctasks-onpostexecute-order
running-multiple-asynctasks-at-the-same-time-not-possible
how-to-manage-multiple-async-tasks-efficiently-in-android
how-to-synchronize-two-async-task
Thanks
Edit :
Consider this code of AsyncTask
implementation,
public class AsyncTaskImplementation extends AsyncTask<String, Void, String> {
private final interface appAsyncTaskInterface;
public interface responseInterface {
void onSuccessHttpResponse(String resultJsonObject);
void onFailedHttpResponse(String failedMessage);
}
public AsyncTaskImplementation(){
//initialise
}
@Override
protected String doInBackground(String... params) {
//executeHttpRequest and return
}
@Override
protected void onPreExecute() {
//pre execute stuff like connection checking
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if (result != null&& !result.equals("")) {
responseInterface.onSuccessResponse(result);
} else {
responseInterface.onFailedinterface("failed");
}
}
}
Question wrt to above code :
Consider two AsyncTaskImplementation
objects, A
and B
created in a UI thread.
Now A
and B
will execute a http request (assume the code is implemented).
After that they will return response through interface responseInterface
.
So my question is regarding this. Will A
and B
simultaneously invoke callback methods in UI thread through responseInterface
?
Should I use synchronized
to make sure that callbacks are synchronized? Or AsyncTask
ensures that callbacks are invoked sequentially?