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