본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] onSaveInstanceState 는 언제 불리는 걸까?

by 돼지왕 왕돼지 2014. 2. 16.
반응형

 android, onSaveInstanceState 는 언제 불리는 걸까?  

[android] onSaveInstanceState 는 언제 불리는 걸까?


<참조>


onSaveInstanceState는 activity 가 죽기전에 불려서 상태를 저장하고, onCreate 나 onRestoreInstanceState 를 통해 해당 상태를 복구하는 데 사용된다.


이 함수는 다음과 같은 경우에 불린다.

예를 들어 Activity A 위에 Activity B 가 실행중에 있는데

리소스 재활용의 문제로 Activity A 가 죽어야 하는 상황이 발생했다.

이 경우에 onSaveInstanceState 가 불려서 A 의 상태를 저장하게 된다.


착각하지 말아야 할 것이 onPause 와 같이 onSaveInstanceState 가 activity life cycle 의 일부라 생각하는 것이다.


기본적인 onSaveInstanceState 구현은, id 를 가진 view 들에 대한 정보를 저장하는데

예를 들면 어떤 view 가 focus 가 되어 있었는지 등이 된다.

super 를 호출하지 않으려면 직접 이런 상태들을 저장하고 restore 해주어야 한다.


만약 불릴 상황이 되면 onStop() 전에 불린다.

onPause() 의 전 후 언제 불릴지는 보장되지 않는다.



반응형

댓글