Я запускаю несколько асинхронных задач одновременно и хочу закрыть только одну из трех - PullRequest
1 голос
/ 12 февраля 2012

Я выполняю один класс асинхронных задач 3 раза в одном из заданий, и мне было интересно, как я могу по отдельности отменить одно из них. Каждый из них загружает файл с сервера, который всегда является другим файлом, и мне было интересно, как я могу отменить только один из трех, которые я выбираю?

1 Ответ

2 голосов
/ 12 февраля 2012

Сохраните ссылку на каждый из них, затем укажите способ отмены. Вызовите этот метод для того, который вы хотите отменить.

private class MyAsyncTask extends AsyncTask<Void, Void, Void> {
    boolean cancelled = false;
    public void cancel() {
        cancelled = true;
    }

    public void doInBackground() {
        while(!cancelled) {
            ...
    }
    ...
}

...

MyAsyncTask task1 = new MyAsyncTask().execute();
MyAsyncTask task2 = new MyAsyncTask().execute();
MyAsyncTask task3 = new MyAsyncTask().execute();

...

if(needToCancelTask2) {
    task2.cancel();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...