← 질문 목록
#86깊이 0
회전 뒤에도 남겨야 할 상태는 어디에 두는가?
모바일기초
다시 계산할 화면 데이터는 ViewModel에 둔다. 선택값과 입력처럼 복원에 필요한 작은 UI 상태는 저장 상태에 둔다. 영구 데이터는 저장소에 둔다.
| 기준 | ViewModel | 저장 상태 |
|---|---|---|
| 구성 변경 | 같은 인스턴스를 잇는다 | 값으로 복원한다 |
| 프로세스 종료 | 사라진다 | 조건부로 복원한다 |
회전과 창 크기 변경은 Activity를 재생성할 수 있다. ViewModel은 이 재생성 동안 메모리 데이터를 유지한다.
시스템이 프로세스를 죽이면 ViewModel도 사라진다. 이때 화면을 다시 만드는 최소 키만 Bundle 기반 저장 상태에서 복원한다.
큰 목록이나 비즈니스 데이터는 저장 상태에 넣지 않는다. ID나 검색어만 남기고 데이터 계층에서 다시 읽는다.
추천 꼬리질문
관련 질문
- 상태 변경은 어디까지 다시 실행되는가?모바일모바일 환경의 화면 회전으로 인한 상태 유지 및 복구 개념을 공유한다.
- 화면을 돌리면 데이터가 사라지는 이유는?모바일화면 회전 시 데이터가 사라지는 이유를 알아야 회전 뒤에도 남겨야 할 상태를 어디에 두어야 하는지 결정할 수 있다.
- 화면 상태를 둘 때 두 수단을 어떻게 나누는가?모바일화면 상태를 두는 수단을 나누는 기준과 회전 시 유지할 상태를 두는 위치는 모바일 상태 관리라는 같은 밑바탕 개념을 공유한다.
- 공유 상태는 어느 컴포넌트에 두는가?프론트엔드
- 갑자기 꺼져도 커밋한 것이 남는 이유는?데이터베이스