안드로이드/정리

[Android] LiveData에 관해...

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에게 데이터 변경에 대한 알림을 보내는 클래스 !