LiveData :: 데이터를 저장하고 변화를 관찰할 수 있는 객체
특징
애플리케이션의 LifeCycle 인식
- Activity, Fragment, Service, Component의 생명주기 따름
데이터의 변경을 활성화된 관찰자(Observer)를 통해 알림
- LifeCycleOwner LiveData가 따르는 생명주기(Owner)의 생명주기가 STARTED, RESUME 상태인 경우만 Observer를 Active 상태로 간주한다.
- 코드를 통합해 Observer 객체에 UI를 업데이트할 수 있다.
LifecycleOwner 구현체가 DESTROYED 상태가 되면 자동으로 Observer는 내부에서 제거
생명 주기에 따른 메모리 누수 걱정이 필요 없게 됨
LiveData는 특히 ViewModel에서 사용하도록 설계 (항상 ViewModel과 함께 사용할 필요는 없음)
Activity나 Fragment가 재실행되도 ViewModel은 소멸되지 않기 때문에
ViewModel이 소멸되지 않으면 LiveData도 소멸되지 않음
MutableLiveData ?
= LiveData를 상속받아 setValue(), postValue()와 같은 메서드를 제공해 값을 수정할 수 있게 한 객체
LiveData는 기본적으로 뷰모델 클래스 안에서만 수정이 가능하다.
LiveData는 라이프싸이클을 인식하여 Observer에게 데이터 변경에 대한 알림을 보내는 클래스 !
'안드로이드 > 정리' 카테고리의 다른 글
[Android] 프로젝트 템플릿에 관해... (0) | 2021.11.01 |
---|---|
[Android] Room에 관해... (0) | 2021.10.30 |
[Android] Jetpack에 관해...[ Databinding ] (0) | 2021.10.28 |
[Android] Jetpack에 관해... [ ViewModel ] (0) | 2021.10.27 |
[Android] Coroutine에 관해... (0) | 2021.10.21 |