728x90
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
'Android' 카테고리의 다른 글
[안드로이드] EditText 밑줄 색 바꾸기 (0) | 2020.10.12 |
---|---|
[안드로이드] statusBarColor 바꾸기 (0) | 2020.10.10 |
[안드로이드] Gone과 Invisible의 차이 (0) | 2020.09.15 |
[안드로이드 이슈] Room cannot verify the data integrity (0) | 2020.09.14 |
[안드로이드 이슈] AndroidX의 RecyclerView 사용 시 (0) | 2020.09.08 |
댓글