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

[android/안드로이드] manifest activity 태그의 속성 stateNotNeeded.

by 돼지왕 왕돼지 2012. 2. 2.
반응형

안녕하세요 돼지왕왕돼지입니다.
이번에 살펴볼 내용은 activity 태그의 속성 stateNotNeeded = "true" | "false"  입니다.

attribute 이름 그대로 state 유지가 필요 없다는 말입니다.

developer부터 살펴보고, state가 뭔지 알아보겠습니다.

- Activity 가 killed 된 후에 다시 시작할때 state 를 유지할지를 결정하는 attribute
 
- "false" 일 경우 이전의 state 를 참조하고, "true" 일 경우에는 참조하지 않는다.
 
- default 는 "false" 이다.



개념적 설명은 이러하고 developer에서 상세한 예시까지도 들어줬네요.

- 일반적으로 activity 가 shutdown 될 때에는 onSaveInstanceState() 가 불리면서 현재의 state ( 상태 ) 에 관련된 정보를
저장합니다. 이 때 Bundle object 를 사용하여 저장을 하며, 이것이 onCreate() 가 다시 불릴 때 전달되는 방식이죠.

- 하지만, stateNotNeeded 가 "true" 로 설정되었다면, onSaveInstanceState() 는 불리지 않고 ( 따라서 state 저장도 없고 ),
 onCreate() 시에는 Bundle 값에 null 이 전달되는 것입니다.



자 바로 아시겠죠??
자 그런데도 state 가 뭔지 모르겠다구요??

State 란 우리나라 말로 하면 "상태" 로 번역될 수 있는데요, 
State 를 저장한다는 말은, 현재 화면에 보여지는 "상태"에 관련된 값들을 저장한다는 것을 말합니다.
예를 들어 현재 activity 에 공을 하나 그렸습니다. 그리고 이 공을 다음에 activity를 실행시켰을 때 유지시키고 싶습니다.
이 activity 를 벗어나게 되면 이전 공의 상태를 저장해야 하는데, 공의 x 좌표, y 좌표, 반지름, 색깔 뭐 이런 정보를 저장하게 되겠죠.
그럼 다시 activity 를 띄울 때 onCreate() 에서 이 저장한 값들을 bundle 로 전달받아 다시 그리는 형식이 되는 것입니다.

자 이해가 되셨죠? ㅋ
자자. 모두가 이해가 되셨을꺼라 믿고, 오늘도 즐거운 하루가 되시길 바랍니다.


로그인 없이도 추천 가능합니다. 손가락을 꾸욱~ 눌러주세요
반응형

댓글