← 질문 목록
#87깊이 0
화면 상태를 둘 때 두 수단을 어떻게 나누는가?
모바일심화
화면 로직과 계산된 UI 상태는 ViewModel에 둔다. 프로세스 재생성 뒤 화면을 복구할 최소 키만 SavedStateHandle에 둔다.
| 기준 | ViewModel | SavedStateHandle |
|---|---|---|
| 구성 변경 | 메모리에 유지한다 | 값도 유지된다 |
| 프로세스 종료 | 인스턴스가 사라진다 | 저장된 값을 복원한다 |
SavedStateHandle도 Bundle 기반이다. 큰 객체 대신 항목 ID와 필터처럼 다시 데이터를 만들 단서만 저장한다.
강제 종료나 최근 앱에서 태스크를 지우면 복원이 보장되지 않는다. 반드시 남아야 하는 데이터는 데이터베이스 같은 영구 저장소에 둔다.