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();
}
}
Author by
sajjoo
Updated on July 09, 2022Comments
-
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 about 13 yearsTrue. Check isCancelled() regularly in doInBackground() to see if you should stop the work and finish yourself.