Отмена AsyncTask - PullRequest
       2

Отмена AsyncTask

0 голосов
/ 28 августа 2011

Можно ли отменить AsyncTask с одной строковой командой в doInBackground , которая выполняет очень длинную операцию, например

@Override
protected Boolean doInBackground(String... filename) {
    fetchfile(filename[0]);
    // ...
    // ...
    return ...;
}

Ответы [ 2 ]

0 голосов
/ 28 августа 2011

В вашем долгосрочном методе периодически проверяйте isCanceled, если это правда, возвращайте из функции как можно скорее, чтобы асинхронный поток мог быть закрыт. И вы можете вызвать cancel () из любого потока.

0 голосов
/ 28 августа 2011

Вы можете AsyncTask.cancel() отменить.Вы можете отменить его в методе fetchFile в соответствующем месте, где, по вашему мнению, это не приведет к несоответствиям в ваших данных или в месте, где его проще откатить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...