Android Jetpack Architecture/ViewModel
ViewModel로 Loader 대체 하기
hik14
2020. 8. 21. 16:46
CursorLoader와 같은 로더 클래스는 앱 UI의 데이터와 데이터베이스 간의 동기화를 유지하는 데 자주 사용된다.
ViewModel을 몇 가지 클래스와 함께 사용하여 로더를 대체할 수 있습니다. ViewModel을 사용하면 UI 컨트롤러가 데이터 로드 작업에서 분리됩니다. 즉, 클래스 간에 강력한 참조가 적어집니다.
일반적인 로더 사용 방법 중 하나로, 앱이 CursorLoader를 사용하여 데이터베이스의 내용을 관찰할 수 있습니다. 데이터베이스에서 값이 변경되면 로더가 자동으로 데이터 새로고침을 트리거하고 UI를 업데이트합니다.
ViewModel은 Room 및 LiveData와 함께 작업하여 로더를 대체합니다. ViewModel은 기기 구성이 변경되어도 데이터가 유지되도록 보장합니다.
데이터베이스가 변경되면 Room에서 LiveData에 변경을 알리고, 알림을 받은 LiveData는 수정된 데이터로 UI를 업데이트합니다.