[英]Kotlin: How to Observe Once a liveData in a viewModel ? Using ObserveForever() and removeObserver()
我正在學習 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...
非常感謝
如果您需要一次性獲取數據 - 考慮在 Room 中使用掛起功能並按需獲取數據。
如果您需要獲取特定的Personnel
對象並觀察其 DB 中的變化,請將getPersonnelById(id)
值存儲在LiveData<Personnel>
並從 Activity/Fragment 觀察它
observeForever
主要用於測試目的,您最好使用observe 功能,不要每次都手動刪除觀察者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.