728x90
LiveData
안드로이드 Jetpack 구성요소중 하나이다.
Data의 변경을 관찰 할 수 있는 Data Holder 클래스 입니다.
Observer
LiveData의 Data관찰은 Observer가 한다.
안드로이드에서의 Observer는 데이터가 변경되는지 감시하고 있다가 데이터가 변경되면 UI 컨트롤러에게 알려준다.
소식을 들은 UI 컨트롤러는 변경된 데이터를 가지고 UI를 업데이트한다.
Observer는 LiveData라는 데이터 홀더 클래스가 가지고 있는 데이터만 감시할 수 있다.
LiveData의 장점
- UI와 데이터 상태의 일치 보장
- LiveData는 데이터가 변경될 때마다 Observer 객체에게 알려줍니다.
- 앱 데이터가 변경될 때마다 Observer가 대신 UI를 업데이트 하므로 개발자가 업데이트 할 필요가 없습니다. - 메모리 누수 없음
- Observer는 Activity나 Fragment의 LifeCycle을 따릅니다.
- LifeCycle이 Destroy 될 경우 자동으로 삭제 됩니다.
- 따로 메모리를 해체하거나 삭제하는 작업을 하지 않아도 됩니다. - 중지된 액티비티로 인한 비정상 종료가 없음
- Activity가 BackStack에 있을 때 처럼 Observer의 Lifecycle이 비활성화 상태에 있으면
- Observer는 어떤 LiveData이벤트도 받지 않습니다. - 수명 주기를 더 이상 수동으로 처리하지 않음
- UI 구성요소는 관련 데이터를 관찰하기만 할 뿐 관찰을 중지하거나 다시 시작하지 않습니다.
- LiveData는 관찰하는 동안 관련 수명주기 상태의 변경을 인식하므로 이 모든 것을 자동으로 관리해줌. - 최신 데이터를 유지함
- LifeCycle이 비활성화에서 활성화될 때 최신 데이터를 수신합니다.
- BackStack에 있던 Activity가 화면에 다시 나오면 최신 데이터를 받습니다. - 적절한 구성 변경
- 기기를 회전시켜 Activity또는 Fragment가 다시 생성되면 사용 가능한 최신 데이터를 즉시 받습니다. - 리소스 공유
- 싱글톤 패턴을 이용하여 시스템 서비스를 래핑하면 앱 어디에서나 리소스를 공유 할 수 있습니다.
'Android-Kotlin > JetPack' 카테고리의 다른 글
[Android] ViewModel을 Fragment에서 간단 사용 - Kotlin (0) | 2022.06.24 |
---|---|
[Android] ViewModel 개념 (0) | 2022.06.24 |
[Android] DataBinding을 Fragment에서 사용하기 - Kotlin (0) | 2022.06.21 |
[Android] DataBinding 개념 및 간단 사용법 - Kotlin (0) | 2022.06.21 |