簡體   English   中英

Kotlin:如何在 viewModel 中觀察一次 liveData ? 使用 ObserveForever() 和 removeObserver()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM