AAC ViewModel

h_hi·2021년 3월 10일
0

AAC

목록 보기
3/8

ViewModel

ViewModel 클래스는 생명주기를 인식하며, UI와 관련된 데이터를 저장하고 관리합니다. ViewModel 클래스는 화면이 회전되어 액티비티가 재생성되는 것과 같은 상황에서도 살아남아 데이터를 보존합니다.

ViewModel의 Lifecycle


위의 그림은 액티비티가 회전하고 종료하기까지의 lifecycle 을 나타내고, 액티비티와 연관된 ViewModel의 lifecycle 도 오른쪽에 나타냈습니다. viewModel 은 액티비티가 종료되고 파괴될 때까지 최초에 생성된 viewModel 인스턴스가 유지됩니다.

Fragment 간 데이터 공유

activity scope 로 생성한 ViewModel 은 프래그먼트 사이에서 데이터를 공유하고 상호작용할 수 있습니다. 프래그먼트 내에서 뷰 모델을 생성하는데 사용한 액티비티를 얻고, 이를 사용하여 ViewModelProviders 로부터 공통된 ViewModel 인스턴스를 얻을 수 있습니다.
이러한 방식의 장점은 다음과 같습니다.

  • viewModel 을 사용하면 액티비티는 아무것도 하지 않아도 된다.
  • 각가의 프래그먼트는 자신만의 lifecycle 을 가지고 있고, 서로 다른 프래그먼트에 영향을 주지 않는다.

Reference

android developer

profile
안드로이드, flutter 개발자

0개의 댓글