как остановить поток ASyncTask в Android - PullRequest
20 голосов
/ 13 декабря 2010
can anybody have any idea how to stop ASyncTask thread in android?.

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

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

Ответы [ 2 ]

41 голосов
/ 13 декабря 2010

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

1 голос
/ 21 мая 2013

В моем случае я выполняю запросы к серверу с помощью 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();
     }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...