Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从任务中删除侦听器?_Android_Firebase_Kotlin_Google Cloud Firestore_Listener - Fatal编程技术网

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

Android 如何从任务中删除侦听器?,android,firebase,kotlin,google-cloud-firestore,listener,Android,Firebase,Kotlin,Google Cloud Firestore,Listener,我正在将侦听器添加到Firestoreget()请求返回的任务中: myQuery.get().addOnSuccessListener(Runnable::run) { /*does something*/ } 我知道我可以使用ddOnSuccessListener(activity,…)将侦听器范围限定到某个活动,该活动将在活动停止时删除侦听器。但是,为了保持代码干净,我需要自己删除侦听器(当包装请求的rxJava可观察对象被处理时,使用 emitter

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

myQuery.get().addOnSuccessListener(Runnable::run) 
    { 
       /*does something*/ 
    }
我知道我可以使用
ddOnSuccessListener(activity,…)
将侦听器范围限定到某个活动,该活动将在活动停止时删除侦听器。但是,为了保持代码干净,我需要自己删除侦听器(当包装请求的rxJava可观察对象被处理时,使用

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


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

不要使用
任务
侦听器,请尝试
查询
本身


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

可能重复@puni nope………要删除侦听器,这是应该如何完成的请查看此@puni,这是实时的updates@puni是的,firestore实时更新-看看标题lolI,我想我可以添加一个快照侦听器和在第一次更新后以及需要处理时,对ListenerRegistration调用remove。这看起来很肮脏,但我不明白为什么对于一个简单的get请求不能这样做。