활동 생명 주기로, 안드로이드의 생성부터 종료까지의 주기를 말한다.
Activity가 새로운 상태에 들어가면 콜백을 호출하는 주기라고도 한다.
사용자가 앱을 탐색하고, 앱에서 나가고, 앱으로 다시 돌아가면 앱의 Activity 인스턴스는 생명주기 안에서 서로 다른 상태를 통해 전환된다.
Activity LifeCycle을 사용하는 이유 ▫ 대표적으로 아래와 같은 문제를 예방하기 위해서 사용한다.
- 사용자가 앱을 사용하는 도중에 전화가 걸려오거나 다른 앱으로 전환할 때 비정상 종료되는 문제 - 사용자가 앱을 활발하게 사용하지 않는 경우 귀중한 시스템 리소스가 소비되는 문제 - 사용자가 앱에서 나갔다가 나중에 돌아왔을 때 사용자의 진행 상태가 저장되지 않는 문제 - 화면이 가로 방향과 세로 방향 간에 회전할 경우, 비정상 종료되거나 사용자의 진행 상태가 저장되지 않는 문제
1) onCreate() - onStart() - onResume() 순으로 호출되면서 사용자에게 메인화면 또는 MainActivity가 보여진다.
3.2. 새 Activity로 전환 (기존 액티비티 완전히 가려짐)
MainActivity에서 SubActivity로 전환되어 기존 액티비티가 완전히 보이지 않을 때 / MainActivity에서 홈 화면으로 이동했을 때 아래와 같은 과정이 발생한다.
1) onCreate() - onStart() - onResume() 순으로 호출되면서 사용자에게 MainActivity가 보여진다.
2) MainActivity에서 버튼을 눌러 SubActivity로 전환될 때 MainActivity가 가려지면서 onPause()가 호출된다.
3) MainActivity가 완전히 가려지게 되면 onStop()이 호출되면서 SubActivity가 사용자에게 보여진다.
3.2.1. 이전 Activity로 전환
SubActivity에서 뒤로가기를 하여 다시 MainActivity로 전환할 때 / 홈 화면에서 백그라운드에서 아직 실행 중인 앱을 다시 실행했을 때 아래와 같은 과정이 발생한다.
4) SubActivity에서 뒤로가기를 눌렀을 때 onRestart()가 호출되면서 이전 Activity를 재실행시킨다.
5) onStart()가 호출되면서 MainActivity 실행을 시작한다.
6) onResume()이 호출되면서 사용자에게 MainActivity 화면이 보여진다.
3.3. 새 Activity로 전환 (기존 액티비티 일부 가려짐)
MainActivity에서 SubActivity2로 전환되어 기존 액티비티의 일부가 보이지 않을 때 아래와 같은 과정이 발생한다.
1) onPause()가 호출되면서 MainActivity가 SubActivity2에 의해 일부 가려져서 화면에 보여진다.
3.3.1 이전 Activity로 전환
SubActivity2에서 뒤로가기 버튼을 눌러서 다시 MainActivity 화면으로 전환될 때 아래와 같은 과정이 발생한다.
2) 뒤로가기 버튼을 누르면 onResume()이 호출되면서 이전 Activity가 사용자에게 보여진다.
3.4. Activity 종료
Activity가 완전히 종료되었을 때 아래와 같은 과정이 발생한다.
1) Activity가 완전히 종료될 때 onPause()와 onStop()이 호출되면서 화면이 홈화면으로 전환된다.
2) onDestroy()가 호출되면서 Activity는 소멸(종료)된다.
이 글을 읽고 제 생명주기도 알게되었습니다