Development/Android
Android Life Cycle 다른 그림.
南山
2010. 8. 3. 16:46
아무리 강조해도 지나치치 않은 안드로이드 라이프사이클.
액티비티의 전체 흐름을 파악하고 있어야 한다.
예를 들어,
뉴스 목록을 보여주는 화면이 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개가 떠있는 상태가 된다.
어떤 오작동이 일어날 가능성이 커지게 된다.