[Android] Mutable LiveData와 ObservableField의 차이점

2359 단어 Android
DataBinding할 때 어떤 것이 좋을지 몰라서 조사한 노트입니다.

utableLiveData의 특징

// こんなやつ
val animal = MutableLiveData<String>()
Activity와 Fragment의 라이프 사이클에 따라 구독 관리가 거의 자동으로 이루어집니다.
→ 의외의 붕괴를 방지할 수 있다
LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
공식 문서 #livedata

ObservableField의 특징

// こんなやつ
val animal = ObservableField<String>()
데이터 바인딩에 사용됩니다.
라이프 사이클이 지원되지 않으므로 자동으로 구독 관리를 수행할 수 없습니다.

차이 정보


이 두 대상은 모두 데이터 귀속에 사용할 수 있는 대상이지만 액티비티와 Fragment의 생명주기에 대응할 수 있는지의 여부는 크게 다르다.
어떤 것을 사용해야 하는지는 상황에 따라 정해지지만 기본적으로 예전과 똑같이 사용해야 한다ObservableField, 생명주기와 꿀과 합작해야 할 때 사용해야 한다MutableLiveData.
 
구글의 공식 문서에서
In Android Studio version 3.1 and higher, you can replace observable fields with LiveData objects in your data binding code.
이렇게 ObservableFieldMutableLiveData로 바꿀 수 있기 때문에 구글은 라이브데이터가 추천한 것일 수도 있다.

참고 자료


android - ObservableField or LiveData? Which one is the best? - Stack Overflow
공식 문서 #livedata
LiveData에 대한 오해 - Qiita

좋은 웹페이지 즐겨찾기