Google Play服务任务API:可以取消任务

时间:2017-04-18 05:21:03

标签: android firebase

使用Tasks.call(Callable)时,是否可以取消它,并从任务中删除所有侦听器?

2 个答案:

答案 0 :(得分:2)

Task类没有可以调用取消的功能。您应该使用它的子类CancellableTask代替,以便能够使用cancel()

  

public abstract boolean cancel()

     

尝试取消任务。取消的任务以后无法恢复。取消的任务回调订阅addOnFailureListener(OnFailureListener)的侦听器,但有异常表示任务已被取消。

     

<强>返回

     
      
  • 如果此任务已成功取消或正在取消,则为true。如果任务已完成或处于无法取消的状态,则返回false。
  •   

如果您仍然坚持使用Task,我认为最好引用使用AsyncTask的{​​{1}}类似帖子。

答案 1 :(得分:1)

如果您需要一种方法可以随时从任何任务中删除所有侦听器,您必须记住之前添加的所有侦听器,然后手动删除它们。

如果您使用的是Android应用,并添加了Activity-scoped listeners,则会在主机活动停止时自动删除它们(通过其onStop()生命周期方法)。请注意,您必须将活动作为参数传递给addOnCompleteListener()