관찰 가능한 데이터 홀더 클래스로서, 액티비티, 프래그먼트, 서비스등 다른 앱 구성요소의 수명주기를 인식하고, 수명주기가 활성상태인 구성요소의 관찰자만 업데이트해주는 역할을 한다.
- 옵저버 패턴을 활용해 구성요소의 수명주기에 따라 데이터를 관리
- 항상 최신 데이터를 보증한다
- 관찰자의 수명 주기가 STARTED
, RESUMED
상태를 활성상태로 간주하고, 활성된 관찰자에게만 업데이트
- LifeCycleOwner
인터페이스를 구현하는 객체와 페어링 된 옵저버를 등록하고, DESTROYED
상태가 되면 옵저버를 삭제한다
UI와 데이터 상태의 일치
메모리 누수 없음
LifeCycle
객체에 결합되어 있으며, 연결된 수명주기가 끝나면 자동으로 삭제됨중지된 활동으로 인한 비정상 종룔 없음
수명주기 상태 변경을 자동으로 관리함
최신데이터 유지
MutableLiveData
/LiveData
MutableLiveData
는 get/set이 모두 가능LiveData
는 get만 가능MutableLiveData
의 set은 setValue' / 'postValue
의 두가지가 있다setValue
: MainThread에서의 접근이 보장될 때만 사용. 아니라면 런타임 오류가 발생postValue
: postToMainThread를 통해 MainThread로 값을 전달함