57
задан 12 October 2011 в 04:41

1 ответ

, Как отменить AsyncTask

, который Полный ответ здесь - пример Android AsyncTask

, AsyncTask предоставляет лучшую стратегию отмены, для завершения в настоящее время выполняющейся задачи.

отмена (булевская переменная mayInterruptIfitRunning)

myTask.cancel (ложь) - Это делает isCancelled, возвращает true. Помогает отменить задачу.

myTask.cancel (истинный) †“Это также делает isCancelled (), возвращает true, прервите фоновый поток, и уменьшает ресурсы.

считается как высокомерный путь, Если будет какой-либо thread.sleep () метод, работающий в фоновом потоке, (то верная) отмена прервет фоновый поток в то время. Но отмена (ложь) будет ожидать его и отменять задачу, когда тот метод завершится.

, Если Вы вызываете отмену () и doInBackground () hasn’t начатый, выполняются все же. onCancelled () вызовет.

После вызова отмены (†¦) Вы должны контрольное число, возвращенное isCancelled () на doInbackground () периодически. точно так же, как показано ниже.

protected Object doInBackground(Params… params)  { 
 while (condition)
{
 ...
if (isCancelled()) 
break;
}
return null; 
}
0
ответ дан 1 November 2019 в 15:35

Другие вопросы по тегам:

Похожие вопросы: