반응형
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() 의 전 후 언제 불릴지는 보장되지 않는다.
반응형
댓글