Kotlin/Android

LiveData 란?

green_ne 2021. 10. 26. 15:50

# LiveData 란?

LiveData는 Observable한 data holder 클래스입니다. 

Activity나 Fragment, Service 등의 앱 구성요소의 life cycle을 인식하고, 이를 통해 Observer 중에서 Active한 life cycle에 있는 앱 구성요소 Observer만 업데이트합니다. 여기서 Observer의 life cycle이 STARTED 또는 RESUMED 상태이면 Active한 상태로 간주합니다.

Observer는 LifecycleOwner interface가 구현된 객체와 함께 등록할 수 있습니다. 이렇게 함께 등록함으로써, Observer가 DESTROYED 상태로 변경될 때 Observer를 삭제할 수 있습니다. 

 

# LiveData의 장점

- UI와 data상태가 일치

LiveData는 Observer패턴을 따르기 때문에, data가 변경될 때 Observer에게 알립니다.

- 기타 등등

 

# LiveData 사용방법

1. LiveData<T> 인스턴스를 생성

일반적으로 ViewModel 클래스에서 생성한다.

 

2. Observer 객체 생성

여기서 onChanged()를 정의합니다. 이는 LiveData의 data변경 시 발생하는 작업에 해당한다. 

일반적으로 Activity나 Fragment에서 생성한다. 

 

3. observe() 메서드로 LiveData와 Observer를 연결

observe() 메서드는 LifecycleOwner를 사용하여 연결하며, Observer가 LiveData를 구독하여 변경이 되면 알림을 받는다.

일반적으로 Activity나 Fragment에 Observer를 연결한다.

 

++

observeForever(Observer) 메서드를 통해 LifecycleOwner가 없이 Observer를 등록할 수 있다.

이 경우 Observer는 항상 Active한 상태로 간주되며, removeObserver(Observer) 메서드로 Observer를 삭제할 수 있다.

 

출처 :
https://developer.android.com/topic/libraries/architecture/livedata

 

반응형