我正在学习Kotlin,并且试图使用相同的ViewModel来显示用户列表和编辑用户。
我正在使用房间,所以我有一个需要观察的“ getPersonnelById()。问题是我只想观察一次,但我不知道该怎么办...
这是我的职能
private fun retrievePersonnelData(id: Long){
if(id != -1L){
val observer = dataSource.getPersonnelById(id).observeForever{
newPersonnel.value = it
Timber.e("Valeur newPersonnel = ${newPersonnel.value}")
}
}
}
我已经按照建议使用了一个observeForever,但是在这种情况下我不知道如何使用removeObserver ...
非常感谢
如果需要一次获取数据,请考虑使用suspend functions in Room并按需获取数据。
如果需要获取特定的Personnel
对象并观察其DB中的变化,请将getPersonnelById(id)
的值存储在LiveData<Personnel>
中并从活动/片段中观察它
observeForever
在测试中是最需要的,您最好使用observe function来避免每次都手动删除观察者。