728x90
반응형
Observable fields
Lifecycle-aware objects
Using StateFlow
class ScheduleViewModel : ViewModel() {
private val _username = MutableStateFlow<String>("")
val username: StateFlow<String> = _username
init {
viewModelScope.launch {
_username.value = Repository.loadUserName()
}
}
}
<TextView
android:id="@+id/name"
android:text="@{viewmodel.username}" />
LiveData를 사용하여 UI에 데이터 변경 알림
LiveData 객체를 데이터 결합 소스로 사용하여 데이터 변경을 UI에 자동으로 알릴 수 있습니다.
식별 가능한 필드와 같이 Observable을 구현하는 객체와 달리 LiveData 객체는 데이터 변경을 구독하는 관찰자의 수명 주기를 알고 있습니다.
이 수명 주기를 알면 LiveData 사용의 이점에 설명된 많은 이점을 활용할 수 있습니다.
Android 스튜디오 버전 3.1 이상에서는 데이터 결합 코드에서 식별 가능한 필드를 LiveData 객체로 바꿀 수 있습니다.
결합 클래스와 함께 LiveData 객체를 사용하려면 수명 주기 소유자를 지정하여 LiveData 객체의 범위를 정의해야 합니다.
다음 예에서는 결합 클래스를 인스턴스화한 후 활동을 수명 주기 소유자로 지정합니다.
참고
https://developer.android.com/topic/libraries/data-binding/observability?hl=ko
https://jngmk.netlify.app/dev/app/2020-05-12-android-data-binding
https://developer.android.com/topic/libraries/data-binding/architecture#livedata
728x90
반응형
'Android > Android Jetpack' 카테고리의 다른 글
안드로이드를 위한 클린 아키텍처 (1) | 2023.04.22 |
---|---|
Jetpack/ LiveData, MutableLiveData, Databinding, BindingAdapter (0) | 2021.08.05 |