기기를 회전해도 현재 뮤직비디오 재생 상태가 이어지도록 구현하기
Android에서 configuration change(화면 회전, 테마 변경 등)가 발생했을 때 Activity나 Fragment는 소멸 후 재생성된다.
따라서 별도로 상태를 유지할 수 있는 방법을 적용해야 한다.
데이터를 Bundle
에 저장하고 복원하는 방식으로 유지한다.
하지만 직렬화가 가능한 데이터만 저장되고, 데이터의 크기가 제한적이므로 복잡한 데이터 구조를 저장하기 어렵다.
Jetpack Compose에서 제공하며 Bundle
에 데이터를 저장하고, 별도로 데이터를 불러올 필요 없이 자동으로 복원해준다.
ViewModelProvider
를 통해 Activity
나 Fragment
에서 관리된다.
Compose에서는 viewModel()
또는 hiltViewModel()
을 호출해서 ViewModel을 생성할 수 있다.
ViewModelProvider
의 내부에서 ViewModelStore
가 ViewModel의 인스턴스를 저장하고, configuration change 발생 시 기존 ViewModel 인스턴스를 반환한다.
장점들