아무리 강조해도 지나치치 않은 안드로이드 라이프사이클.
액티비티의 전체 흐름을 파악하고 있어야 한다.
예를 들어,
뉴스 목록을 보여주는 화면이 A, 목록에서 하나를 골라서 터치하면 상세뉴스를 보여주는 화면을 B 라고 한다면
사용자가 뉴스 목록을 본다는 것은 A 가 onCreate -> onStart -> onResume 의 단계를 거쳐서 활성화 되어 있는 상태이다.
이때 뉴스 하나를 터치하면 A 는 B 화면 뒷쪽으로 넘어가면서 포커스를 잃게 된다.
A 의 상태는 onPause -> onStop 의 상태로 바뀌며, B 의 상태는 onCreate -> onStart -> onRusume 의 상태를 거쳐서 사용자에게 상세정보를 보여주고 있다.
사용자가 뉴스를 다 읽고 다시 목록으로 돌아가는 버튼(finish)을 터치하면 B 는 onPause -> onStop 의 상태로 바뀌어서 대기 상태로 들어가며 B 화면 뒷쪽에 있던 목록화면인 A 는 onStop -> onRestart -> onStart -> onResume 의 단계를 거쳐서 다시 재활성화 되어 사용자에게 보여진다.
만약 이런 라이프사이클을 잘 이용하지 않고 뉴스 상세화면을 닫으면서 finish 할때 목록 화면을 다시 startActivity 한다면 목록화면 액티비티가 메모리에 2개가 떠있는 상태가 된다.
어떤 오작동이 일어날 가능성이 커지게 된다.
'Development > Android' 카테고리의 다른 글
Widget Life Cycle. (0) | 2010.08.06 |
---|---|
특별한 갤럭시S. (0) | 2010.08.05 |
Widget 에서 onReceive 과 onUpdate 메소드의 차이. (0) | 2010.07.30 |
Android Activity Life Cycle. (0) | 2010.07.26 |
리스트 출력하고 그 중에서 원하는 하나의 정보를 가져오기. (0) | 2010.07.22 |