본문 바로가기

Android

장치 회전과 액티비티의 부활

런타임 시에 언제든 구성 변경이 생기면

안드로이드는 현재의 액티비티를 소멸시키고

새로운 액티비티를 생성한다.


구성 변경의 예) 화면 전환(가장 빈번하다.), 키보드, 언어의 변경



장치 회전 시 데이터 저장하기

안드로이드는 런타임 시에 대체 리소스를 제공하는 일을 훌륭하게 수행한다.

그러나 이 때 반드시 데이터를 저장하는 방법이 필요하다.

방향 전화 후 새로 생성된 액티비티는 이전 액티비티가 포함했던 데이터 값을 모른다.


onSaveInstanceState(Bundle)이 열쇠다.

Bundle은 문자열 키를 제한된 타입의 값으로 연관시키는, 키와 값을 한 쌍으로 데이터를 저장하는 구조이다.

데이터를 Bundle 객체에 저장하기 위해 onSaveInstanceState()를 오버라이드 할 수 있다.

그리고 그 데이터는 onCreate()에서 읽을 수 있다.


Bundle 객체에 저장 또는 읽는 타입은 기본형 데이터 타입이거나 Serializable 인터페이스를 구현하는 객체라는 것에 유의하자.

onSaveInstanceState()를 오버라이드했을 때는 테스트를 해보는 것이 좋다.