使用Tasks.call(Callable)时,是否可以取消它,并从任务中删除所有侦听器?
答案 0 :(得分:2)
Task
类没有可以调用取消的功能。您应该使用它的子类CancellableTask
代替,以便能够使用cancel()
:
public abstract boolean cancel()
尝试取消任务。取消的任务以后无法恢复。取消的任务回调订阅
addOnFailureListener(OnFailureListener)
的侦听器,但有异常表示任务已被取消。<强>返回强>
- 如果此任务已成功取消或正在取消,则为true。如果任务已完成或处于无法取消的状态,则返回false。
如果您仍然坚持使用Task
,我认为最好引用使用AsyncTask
的{{1}}类似帖子。
答案 1 :(得分:1)
如果您需要一种方法可以随时从任何任务中删除所有侦听器,您必须记住之前添加的所有侦听器,然后手动删除它们。
如果您使用的是Android应用,并添加了Activity-scoped listeners,则会在主机活动停止时自动删除它们(通过其onStop()
生命周期方法)。请注意,您必须将活动作为参数传递给addOnCompleteListener()
。