액티비티에서 configuration change가 발생하면 onDestroy() 되었다가 onCreate()된다. 다시 말해 액티비티가 사라졌다가 configuratoin의 변화에 맞춘 액티비티로 재생성 된다.
configuration change가 발생하였을 때 viewModel의 라이프 사이클
이런 과정에서 원래 액티비티에서의 상태(데이터)를 저장해두지 않으면 액티비티가 onDestroy() 다시 onCreate()되기 떄문에 상태를 잃어버리게 된다.
해결 방법으로는 onSaveInstanceState()와 ViewModel이 있다.
여기서 알아볼 것은 viewModel이고 viewModel은 액티비티의 라이프 사이클과 달리 해당 액티비티가 완전히 없어지기 전까지 메모리에 잡혀있기 떄문에 따로 설정은 같은 것은 필요가 없다
다시 말해 viewModel에 저장해두면 알아서 값을 보존한다.
일단은 저기로 가서 dependencies에 필요한 값들은 가져온다.
lifecycle_version과 ViewModel implementation이 필요
app 수준 build.gradle에 추가한뒤 ViewModel 클래스를 만든다.
ViewModelFactory를 만들면 ViewModel을 커스텀할 수 있다.
Main에서 구현