본문 바로가기

Development/Android

Android Life Cycle 다른 그림.

사용자 삽입 이미지


아무리 강조해도 지나치치 않은 안드로이드 라이프사이클.
액티비티의 전체 흐름을 파악하고 있어야 한다.



예를 들어,
뉴스 목록을 보여주는 화면이 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개가 떠있는 상태가 된다.
어떤 오작동이 일어날 가능성이 커지게 된다.