이번에는 안드로이드 4대 컴포넌트 중 하나인 액티비티의 생명주기에 대해 정리해보려고 한다.
Lifecycle?
생명주기는 앱이 생성이 되는 순간부터 종료되는 순간까지의 과정을 말한다.
이번에 설명하는 액티비티 생명주기는 액티비티의 생성부터 종료까지의 과정을 말한다.
Activity Lifecycle?

위의 사진은 구글 공식 문서에서 제공하는 액티비티 생명주기의 순서도이다.
밑에서 콜백들을 하나씩 정리해보겠다.
- onCreate
- 액티비티가 생성되면 가장 먼저 실행되는 콜백이다.
- 액티비티 생명주기중 단 한번만 실행된다.
- 이 때문에 한번만 실행되어야 하는 작업들이 존재한다.
- onStart
- 액티비티가 화면을 띄우기 직전 실행되는 콜백이다.
- 화면에 들어갈 때 마다 필요한 작업들이 존재한다.
- onResume
- 액티비티가 화면을 띄울 때 실행되는 콜백이다.
- 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 이 상태에 머무릅니다.
- 사용자에게 보이는 동안 실행해야 하는 작업들이 존재한다.
- onPause
- 액티비티가 일부 가려져 포커스가 풀리면 실행되는 콜백이다.
- 액티비티가 일시중지일 때 계속 실행되서는 안되는 작업들이 존재한다.
- onStop
- 액티비티가 완전히 가려질 때 실행되는 콜백이다.
- 사용자에게 안 보일 때 실행할 필요 없는 작업들이 존재한다.
- 정보를 데이터베이스에 저장할 때 사용되기도 한다.
- 액티비티가 다시 시작되면 onRestart 콜백을 호출한다.
- onDestroy
- 액티비티가 완전히 종료되었을 때 실행되는 콜백이다.
- 액티비티가 소멸되기 전 필요한 작업들이 존재한다.
- onRestart
- onStop이 호출된 후 다시 액티비티로 돌아오면 호출되는 콜백이다.
오늘은 Activity Lifecycle을 정리해봤습니다.
틀린 부분이 있다면 말해주세요!
구글 공식 문서
참고한 블로그