ObserveForever using Transformations.map 的替代方案



我正在观察一个实时数据,以便在ViewModel中使用observeForever进行一些查询,

query.observeForever {
//
}

逻辑工作正常,但我无法删除onCleared中的观察者,因为我无法访问 viewModel 的生命周期,我不应该,我尝试使用 Transformation.map

Transformations.map(query){
//
}

并且未能观察到更改。有关如何使用 Transformation.map 侦听实时数据更改并对其采取行动的任何建议

你可以像这样扩展你的视图模型LifecycleObserver-

class MyViewModel() : LifecycleObserver {
val queryObserver = Observer {
// do stuff
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResumed() {
query.observeForever(queryObserver)
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun onPasued() {
query.removeObserver(queryObserver)
}
}

不要忘记在您的活动中添加getLifecycle().addObserver(mViewModel)

最新更新