런타임 시에 언제든 구성 변경이 생기면
안드로이드는 현재의 액티비티를 소멸시키고
새로운 액티비티를 생성한다.
구성 변경의 예) 화면 전환(가장 빈번하다.), 키보드, 언어의 변경
장치 회전 시 데이터 저장하기
안드로이드는 런타임 시에 대체 리소스를 제공하는 일을 훌륭하게 수행한다.
그러나 이 때 반드시 데이터를 저장하는 방법이 필요하다.
방향 전화 후 새로 생성된 액티비티는 이전 액티비티가 포함했던 데이터 값을 모른다.
onSaveInstanceState(Bundle)이 열쇠다.
Bundle은 문자열 키를 제한된 타입의 값으로 연관시키는, 키와 값을 한 쌍으로 데이터를 저장하는 구조이다.
데이터를 Bundle 객체에 저장하기 위해 onSaveInstanceState()를 오버라이드 할 수 있다.
그리고 그 데이터는 onCreate()에서 읽을 수 있다.
Bundle 객체에 저장 또는 읽는 타입은 기본형 데이터 타입이거나 Serializable 인터페이스를 구현하는 객체라는 것에 유의하자.
onSaveInstanceState()를 오버라이드했을 때는 테스트를 해보는 것이 좋다.
'Android' 카테고리의 다른 글
Android Studio에서 @drawable 대신 @mipmap! (0) | 2015.06.23 |
---|---|
매니페스트 (0) | 2015.06.20 |
CH02 챌린지 all clear (0) | 2015.06.19 |
모델-뷰-컨트롤러, MVC (0) | 2015.06.18 |
개발환경에 융통성 심어주기, 멤버변수의 'm'을 인식하라 (0) | 2015.06.18 |