AAC
- 안드로이드 아키텍처 컴포넌트(Android Architecture Components)로 앱 개발을 더 쉽고 유지보수 가능하게 해주는 구성요소들의 모음
LiveData는 AAC의 일부로 아래와 같은 특성을 가진다
- Observer 패턴 기반의 데이터 홀더로, 데이터를 감싸고 UI와 연결할 수 있음.
- LifecycleOwner(Activity, Fragment 등)를 인식해, UI Controller가 종료되면 자동으로 Observer를 제거해 메모리 누수를 방지함
ViewModel에서 쓰느냐 Activity, Fragment에서 쓰느냐의 차이는 바로 lifecycle
만약 ViewModel에서 사용하면 ViewModel의 Lifecycle을 따르기 때문에, 화면 회전 시에도 데이터가 유지
즉 , ViewModel은 Activity보다 수명이 길고, Activity가 재생성되어도 같은 ViewModel 인스턴스를 유지하기 때문
근데 만약 Fragment나 Activity에서 LiveData를 선언해서 쓰게 된다면, 화면 회전 시 Activity/Fragment가 재생성되면서 LiveData도 새로 만들어지고 기존 데이터는 날아감
그러므로 LiveData는 ViewModel에서 선언해서 쓰는 것이 좋다
'📱 Android' 카테고리의 다른 글
[Android] binding 즉시 업데이트 하기 executePendingBindings (0) | 2024.11.21 |
---|---|
[Android] 이미지뷰에 apng 파일 적용하기 (0) | 2024.11.17 |
[Android] Multipart / Presigned url (0) | 2024.11.14 |
[Android] 앱 배포 실패, 그 원인은 SoLoader ? (ft.giphy) (4) | 2024.10.11 |
[Android / Glide] Glide override / Glide 이미지 크기 조정 (1) | 2024.10.08 |