Activity Lifecycle


Android 에서 Activity 는 어플리케이션을 작성할 때 가장 기본이 되는 화면이며 고유한 하나의 Task 를 의미한다. Activity 는 여러 개 존재할 수 있으며, 반드시 Manifest.xml 에 정의되어 있어야 한다.
Activity 가 전환되면 이전에 보이던 Task 는 Activity Stack 에 쌓이게 되고 전환작업이 일어나면서 아래와 같은 Lifecycle 을 가지게 된다.
Method |
Description |
onCreate() |
Activity 가 최초로 생성될 때 호출된다. View 의 생성과 리스트와 같은 데이터 바인딩 등의 정적 초기화 작업을 수행한다. 또한 이전에 저장된 Bundle 형식의 데이터에 접근할 수 있다. |
onRestart() |
Activity 가 다시 시작될 때 호출된다. 아직 스택에 남아있을 때는 새로 시작되는 것이 아니라 멈추었던 실행이 재개되는 것이다. |
onStart() |
Activity 가 화면에 보이는 단계에서 호출된다. |
onResume() |
Activity 가 사용자와의 상호작용이 가능할 때 호출되며, 시작 애니메이션이나 음악 등을 시작하기 좋은 위치이다. onResume() 이후에 View 의 onDraw(), onMeasure(), onLayout() 이 호출된다. View 의 위치와 크기가 필요한 경우에는 위의 3가지 Method 를 이용하거나 onWindowFocusChanged() 에서 처리해야 한다. |
onPause() |
Activity 가 background 로 전환될 때 호출되며, 주로 아직 저장되지 않는 변경 정보들을 persistent data 에 저장하는데 사용될 수 있다. 새로운 액티비티가 활성화되어야 하므로 애니메이션과 같은 CPU 소모적인 작업을 중단한다. |
onStop() |
Activity 가 더 이상 사용자에게 보여지지 않을 때 호출된다. |
onDestroy() |
Activity 가 소멸되기 직전에 호출된다. 사용자가 finish() 를 호출하거나, 시스템이 메모리 공간을 절약하기 위해 Activity 를 임시로 종료시키는 과정에서 호출된다. |