API задач сервисов Google Play: можно ли отменить задачу
При использовании Tasks.call(Callable) я могу отменить его и удалить всех слушателей из задачи?
2 ответа
Если вам нужен способ удалить всех слушателей из любой Задачи в любое время, вам придется запомнить всех ранее добавленных слушателей, а затем удалить их всех вручную.
Если вы работаете с приложением Android и добавляете прослушиватели с областью действия, они будут автоматически удалены при остановке активности хоста (через onStop()
метод жизненного цикла). Обратите внимание, что вы должны передать действие в качестве аргумента addOnCompleteListener()
,
Task
В классе нет функции, которую можно вызвать для отмены. Вы должны использовать его подкласс CancellableTask
вместо этого, чтобы иметь возможность использовать cancel()
:
public аннотация boolean cancel ()
Попытки отменить задачу. Отмененная задача не может быть возобновлена позже. Отмененная задача перезванивает слушателям, подписавшимся на
addOnFailureListener(OnFailureListener)
за исключением того, что задача была отменена.Возвращает
- Значение true, если эта задача была успешно отменена или находится в процессе отмены. Возвращает false, если задача уже выполнена или находится в состоянии, которое нельзя отменить.
Если вы все еще настаиваете на использовании Task
вместо этого, я думаю, что было бы лучше сослаться на похожие посты, которые используют AsyncTask
вот такой.