ViewModel 메모리 해제 메커니즘

hegleB·2024년 2월 15일
0
post-thumbnail

왜 액티비티는 종료를 하면 ViewModel이 메모리를 해제가 되는 것일까??
그래서 ViewModel을 따라 올라가 봤다

먼저 보면 clear라는 메서드에서 onCleared() 메서드를 사용하고 있다.

추가적인 확인을 통해 ViewModelStore 내에서 clear() 메서드가 구현되어 있는 것을 발견했다. 이를 바탕으로 ViewModelStore가 어디에 사용되는지를 더 파악해보니, ComponentActivity가 ViewModelStore를 활용하여 clear() 메서드를 호출하고 있음을 확인했다. 이는 ComponentActivity가 ViewModelStore의 clear() 메서드를 사용해 ViewModel들을 관리하고 있음을 나타낸다.

코드를 확인해보니 ComponentActivity가 DESTROY 생명주기에서 구성 변경이 일어나지 않을 경우, getViewModelStore().clear()를 호출하여 ViewModelStore 내의 ViewModel들을 클리어한다는 것을 확인했다. 이는 ComponentActivity가 ViewModelStore를 사용해 clear 메서드를 실행함으로써, 개발자가 ViewModel의 메모리 관리를 수동으로 처리할 필요가 없게 해준다. 즉, 시스템이 구성 변경이 발생하지 않는 상황에서 자동으로 ViewModel 관련 메모리를 해제하도록 설계되어 있다는 점을 알 수 있다.

profile
성장하는 개발자

0개의 댓글

관련 채용 정보