我正在向Firestore get()
请求返回的任务添加侦听器:
myQuery.get().addOnSuccessListener(Runnable::run)
{
/*does something*/
}
我知道我可以使用a ddOnSuccessListener(activity, ...)
将侦听器的作用域限定为活动,当活动停止时它将删除侦听器。但是,为了保持我的代码整洁,我需要自己删除监听器(当包装请求的rxJava observable被丢弃时-使用
emitter.setCancellable{
/*remove the listener here*/
}
)。
如何从任务中删除侦听器?
答案 0 :(得分:2)
而不是使用Task
侦听器,而是在Query
本身上尝试adding a snapshot listener。
此方法返回一个具有ListenerRegistration
方法的remove
对象。