是否可以在视图模型中观察实时数据而无需创建新的实时数据?据我了解,在视图模型中切勿观察,因为这会导致生命周期问题。因此,通常使用Transformations.switchMap(),但这会创建一个我必须分配的新实时数据。理想情况下,我想做这样的事情:
val liveData: LiveData<String>
liveData.switchMap {
// Do stuff
}
或
liveData.observe {
// Do stuff
}
答案 0 :(得分:0)
您可以使用observeForever,但在这种情况下,您必须注意在清除viewmode时将其丢弃
答案 1 :(得分:0)
不完全是。之所以不应该在viewModel中观察某些内容,是因为它没有正确的生命周期。最好的方法是在视图中观察LiveData并使用MediatorLiveData在ViewModel中拦截数据,然后将处理后的数据直接发布到LiveData变量中。