본문 바로가기
Android

[안드로이드] LiveData

by Sky Titan 2020. 9. 15.
728x90
 

LiveData  |  Android 개발자  |  Android Developers

LiveData The android.arch Architecture Components packages are no longer maintained. They have been superseded by the corresponding androidx.* packages. See androidx.lifecycle.LiveData instead. public abstract class LiveData extends Object java.lang.Object

developer.android.com

LiveData

  • LiveData는 주어진 생명주기 내에서 observed 될 수 있는 데이터 홀더 클래스입니다.
  • 이 말은 Observer는 LifeCycleOwner와 한 쌍을 이루어 추가될 수 있다는 의미이고, LifeCycleOwner가 활성화된 상태일 때만 LiveData가 감싸고 있는 데이터가 수정됨을 observer에게 알리게 됩니다.
  • 여기서 LifeCycleOwner의 활성화(active) 상태는 STARTED 혹은 RESUMED 상태를 의미합니다.
  • 그리고 observeForever(Observer) 메서드를 통해서 추가된 observer는 항상 활성화된 상태로 간주되고, 그러므로 항상 데이터 수정에 대한 알림을 받게 됩니다.
  • 그리고 그러한 observer들은 수동으로 removeObserver(Observer) 메서드를 호출하여 제거해야됩니다.
  • LifeCycle과 함께 추가된 observer들은 LifeCycle의 상태가 DESTROYED로 변하게 되면 자동으로 제거됩니다.
  • 그리고 이러한 점 덕에 결국 Activity, Fragment들은 데이터를 leak(누수) 없이 안전하게 observe 할 수 있습니다.
  • 이 클래스는 ViewModel의 개별 데이터 필드들을 보관하기 위해서 만들어 졌지만 다른 모듈들 간의 데이터를 공유하기 위해서도 사용 가능합니다.
728x90

댓글