최근에 Jetpack 뷰상태 복구를 지원하기 위해 SaveStateHandle 이 추가 되었습니다.
https://developer.android.com/topic/libraries/architecture/viewmodel-savedstate
기본적으로는 LiveData를 담은 hashmap같은 겁니다. 최근의 안드로이드 아키텍쳐는 SingleActivity로 가고 있고요, ViewModel에 상태를 저장했다가 복구해주도록 권장하고 있습니다. 근데, 이게 생각보다 간단하지가 않아요. 심플한거는 쉬운데, 스크롤 포지션이라던가 이런 거를 기억해야 하는 거면 좀 복잡해 집니다. ViewModel에서 보관할 데이터를 어떤 구조로 가져가야 하는지도 화면에 따라 고민을 해야합니다.
결론적으로는 뷰상태 복구를 위해 ViewModel + LiveData를 사용할 수 있습니다. 그리고 그게 최근의 권장사항입니다.