如何从任务中删除侦听器?

时间:2018-08-24 08:30:37

标签: android firebase kotlin google-cloud-firestore listener

我正在向Firestore get()请求返回的任务添加侦听器:

myQuery.get().addOnSuccessListener(Runnable::run) 
    { 
       /*does something*/ 
    }

我知道我可以使用a ddOnSuccessListener(activity, ...)将侦听器的作用域限定为活动,当活动停止时它将删除侦听器。但是,为了保持我的代码整洁,我需要自己删除监听器(当包装请求的rxJava observable被丢弃时-使用

emitter.setCancellable{ 
/*remove the listener here*/ 
}

)。

如何从任务中删除侦听器?

1 个答案:

答案 0 :(得分:2)

而不是使用Task侦听器,而是在Query本身上尝试adding a snapshot listener

此方法返回一个具有ListenerRegistration方法的remove对象。