API задач сервисов Google Play: можно ли отменить задачу

При использовании Tasks.call(Callable) я могу отменить его и удалить всех слушателей из задачи?

2 ответа

Решение

Если вам нужен способ удалить всех слушателей из любой Задачи в любое время, вам придется запомнить всех ранее добавленных слушателей, а затем удалить их всех вручную.

Если вы работаете с приложением Android и добавляете прослушиватели с областью действия, они будут автоматически удалены при остановке активности хоста (через onStop() метод жизненного цикла). Обратите внимание, что вы должны передать действие в качестве аргумента addOnCompleteListener(),

Task В классе нет функции, которую можно вызвать для отмены. Вы должны использовать его подкласс CancellableTask вместо этого, чтобы иметь возможность использовать cancel():

public аннотация boolean cancel ()

Попытки отменить задачу. Отмененная задача не может быть возобновлена ​​позже. Отмененная задача перезванивает слушателям, подписавшимся на addOnFailureListener(OnFailureListener) за исключением того, что задача была отменена.

Возвращает

  • Значение true, если эта задача была успешно отменена или находится в процессе отмены. Возвращает false, если задача уже выполнена или находится в состоянии, которое нельзя отменить.

Если вы все еще настаиваете на использовании Task вместо этого, я думаю, что было бы лучше сослаться на похожие посты, которые используют AsyncTask вот такой.

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