What if I need to run another async task being in another async task, meaning in onPostExecute()
method, how to do so?
It is possible but it will crash if you try to modify the UI from the onPostExecute on the second task as it is not executing in the main thread. IF your second task not contains UI operation, you can start. Its advisable to start async in post execute of first async.
AsyncTask instances can only be used one time.
To start an AsyncTask the following snippet must be present in the MainActivity class : MyTask myTask = new MyTask(); myTask. execute(); In the above snippet we've used a sample classname that extends AsyncTask and execute method is used to start the background thread.
As a recommendation, try to off-load as many time's taking calls in your first AsyncTask
as you can. However, if your application design is in such a way that you only need to execute another task once the first task is completed then simply execute the second AsyncTask
exactly in the same way as you are doing for the first one.
@Override
protected void onPostExecute(String result) {
new MySecondAsyncTask().execute(params); //params if any
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With