Подтвердить что ты не робот

Как остановить поток ASyncTask в android

can anybody have any idea how to stop ASyncTask thread in android?.

На самом деле у меня есть цикл, который создает потоки и выполняет их. и когда этот цикл закончится, я хочу остановить все запущенные потоки. есть все равно, чтобы остановить потоки?

Большое спасибо.

4b9b3361

Ответ 1

В моем опыте с AsyncTask вызов cancel(boolean mayInterruptIfRunning) не обязательно останавливает выполнение фонового процесса. Все, что кажется, состоит в том, что AsyncTask выполнит onCancelled(), а не выполнит onPostExecute() при завершении. Поведение, вероятно, зависит от того, какой код у вас есть в doInBackgound()

Ответ 2

В моем случае я выполняю запросы сервера с HttpPost, HttpGet и так далее. Единственный способ, которым я нашел закончить AsyncTask, - это вызвать метод abort(), как вы можете видеть в следующем примере

if (isCancelled) {
     try {
         //cancel the task and immediately abort the HttpRequest
         uploadTask.cancel(true);
         post.abort();
     } catch (UnsupportedOperationException e) {
         e.printStackTrace();
     }
}