Как отменить AsyncTask
Полный ответ здесь - Пример Android AsyncTask
AsyncTask предоставляет лучшую стратегию отмены, чтобы завершить текущую задачу.
отмена (логическое значение mayInterruptIfitRunning)
myTask.cancel (false) - возвращает isCancelled значение true. Помогает отменить задание.
myTask.cancel (true) - isCancelled () также возвращает true, прерывает фоновый поток и освобождает ресурсы.
Это считается высокомерным способом. Если есть какой-либо метод thread.sleep (), выполняющий в фоновом потоке, метод cancel (true) прервет фоновый поток в это время. Но отмена (false) будет ждать его и отменит задачу, когда этот метод завершится.
Если вы вызываете cancel (), а doInBackground () еще не началось, выполните. onCancelled () вызовет.
После вызова отмены (…) вы должны периодически проверять значение, возвращаемое isCancelled () в doInbackground (). как показано ниже.
protected Object doInBackground(Params… params) {
while (condition)
{
...
if (isCancelled())
break;
}
return null;
}