Kotlin/Android

MediatorLiveData로 LiveData 병합하기

green_ne 2021. 10. 27. 16:08

MediatorLiveData는 LiveData의 하위 클래스로서, 

이를 사용하여 여러 개의 LiveData 소스를 병합할 수 있다.

마찬가지로, 이는 관찰자에게 원천 LiveData가 변경될 때마다 호출된다.

 

주로 DB나 NW의 업데이트를 관찰하기 위해 사용한다.

다음과 같이, addSource(T)를 통해 원천 LiveData를 추가한다.

val liveData1: LiveData<Int> = ...
val liveData2: LiveData<Int> = ...
val merger = MediatorLiveData<Int>()

// MediatorLiveData<T>.addSource(LiveData, Observer)
merger.addSource(liveData1) { value ->
    merger.setValue(value)
}
merger.addSource(liveData2) { value ->
    merger.setValue(value)
}

 

참고 :
https://developer.android.com/reference/kotlin/androidx/lifecycle/MediatorLiveData
반응형