how to stop ASyncTask thread in android

28,119

Solution 1

In my experience with AsyncTask, calling cancel(boolean mayInterruptIfRunning) doesn't necessarily stop the execution of the background process. All that seems to happen is that the AsyncTask will execute onCancelled(), and won't run onPostExecute() when it completes. The behaviour probably depends on exactly what code you have in doInBackgound()

Solution 2

In my case I perform server requests with HttpPost, HttpGet and so on. The only way I found to end an AsyncTask was calling the abort() method as you can see in the following example

if (isCancelled) {
     try {
         //cancel the task and immediately abort the HttpRequest
         uploadTask.cancel(true);
         post.abort();
     } catch (UnsupportedOperationException e) {
         e.printStackTrace();
     }
} 
Share:
28,119
sajjoo
Author by

sajjoo

Updated on July 09, 2022

Comments

  • sajjoo
    sajjoo almost 2 years
    can anybody have any idea how to stop ASyncTask thread in android?.
    

    Actually i have a loop which creates threads and executes them. and when this loop will end i want to stop all that threads which have run. is there anyway to stop threads?

    thanks alot.

  • icyerasor
    icyerasor about 13 years
    True. Check isCancelled() regularly in doInBackground() to see if you should stop the work and finish yourself.