본문 바로가기
Android

UI 상태 저장을 하는 방법

by 안솝우화 2021. 5. 27.
반응형

안드로이드에서는 장치 회전과 같은 런타임 구성 변경 시 또는 사용자가 다른 앱으로 이동하거나 안드로이드 운영체제가 메모리를 회수할 때 앱의 프로세스가 소멸되는데 이때 저장된 모든 객체들도 같이 소멸됩니다.

때문에 해당 데이터를 보존할 방법이 필요합니다.

 


ViewModel

 


ViewModel로 UI 데이터를 쉽게 저장해 UI상태가 유실되는것을 막을수 있습니다

 

ViewModel은 특정 액티비티 화면과 연동되며, 해당 화면에 보여줄 데이터를 형식화하는 로직을 두기 좋은 장소입니다

 

ViewModel은 모델 객체와 연동되며 모델 데이터를 화면에 보여주는 기능을 수행합니다

 

ViewModel을 사용해 화면에서 필요한 모든 데이터를 한곳에서 종합하고 데이터를 형식화 할수 있습니다

 

 

 

 

 


SIS(Saved Instance State)

 


SIS는 Saved Instance State의 줄임말로 저장된 인스턴스의 상태, 즉 데이터를 저장하는 방법입니다

 

사용자가 다른 앱으로 이동하거나 안드로이드 운영 체제가 메모리를 회수할때 앱의 프로세스가 소멸됩니다

 

이때 데이터를 유실하지 않기 위해서 SIS를 사용합니다

 

액티비티의 슈퍼 클래스에 기본 구현된 onSaveInstanceState(Bundle)에서는 현재 액티비티의 모든 뷰가 자신들의 상태를 Bundle 객체의 데이터로 저장합니다

 

때문에 onSaveInstanceState(Bundle)을 오버라이드하면 추가적으로 Bundle 객체에서 데이터를 저장할 수 있고 저장한 데이터를 onCreate(Bundle?)에서 다시 받을수 있습니다

 

반응형

'Android' 카테고리의 다른 글

Android Studio 4.2.1 버전 signingReport  (0) 2021.06.10
UI 변경과 다중 창 모드  (0) 2021.05.27
프로세스, 스레드, 코루틴  (0) 2021.05.25
WorkManager 란?  (0) 2021.05.18
Fragment안에 있는 ViewPager2  (0) 2021.05.11