Lifecycle
사용자가 앱을 탐색하고, 앱에서 나가고 다시 도아가면, 앱의 Activity
인스턴스는 수명 주기 안에서 서로 다른 상태를 통해 전환된다. Activity
클래스는 활동이 상태변화를 알아차릴 수 있는 여러 콜백을 제공한다. 활동 생명 주기 단계 간에 전환하기 위해 활동 클래스는 6가지 콜백으로 구성되어있다.

- onCreate() : 시스템이 먼저 활동을 생성할 때 실행되는 것으로 필수적으로 구현해야 한다.
- onStart() : 활동이 시작됨 상태에 들어가면 시스템은 이 콜백을 호출한다.
onStart()
가 호출되면 활동이 사용자에게 표시되고, 앱은 활동을 포그라운드에 보내 상호작용할 수 있도록 준비한다. 이 매서드는 매우 빠르게 완료되고 활동이 시작됨에 따라 onResume()
메서드를 호출한다.
- onResume() : 이 상태에 들어가면 앱이 사용자와 상호작용한다. 어떤 이벤트가 발생해 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무른다. ex)전화, 다른 화면으로 이동, 기기 화면 꺼짐.
- onPause() : 사용자가 활동을 떠나는 것을 나타낼 때 이 메서드를 호줄한다. 활동이 포그라운드에 있지 않게 되었다는 것을 의미한다.(다만 사용자가 멀티윈도우 모드에 있을 경우에는 여전히 표시될 수 있다.) 멀티 윈도우 모드를 더욱 잘 지원하기 위해서 UI 관련 리소스와 작업을 완전히 해제하거나 조정할 때는
onPause
대신 onStop
를 사용하는 것이 좋다.
- onStop() : 활동이 사용자에게 더 이상 표시되지 않으면 중단됨 상태에 들어가고, 시스템은
onStop()
콜백을 호출합니다. Activity가 중단됨 상태로 전환하면 이 Activity의 수명주기와 연결된 모은 수명 주기 인식 구성 요소는 ON_STOP 이벤트를 수신합니다.
이 메서드에서는 앱이 사용자에게 보이지 않는 동안 앱은 필요하지 않은 리소스를 해제하거나 조정해야 한다. onPause()
대신 onStop()
을 사용하면 사용자가 멀티 윈도우 모드에서 활동을 보고 있더라도 UI 관련 작업이 계속 진행된다.
그리고 onStop()
을 사용하여 CPU를 비교적 많이 소모하는 종료 작업을 실행해야 한다.
- onDestroy() : 활동이 소멸되기 전에 호출된다. 시스템이 다음 중 하나에 해당할 때 이 콜백을 호출한다.
- (사용자가 활동을 완전히 닫거나 활동에서
finish()
가 호출되어) 활동이 종료되는 경우
- 구성 변경(예: 기기 회전 또는 멀티 윈도우 모드)으로 인해 시스템이 일시적으로 활동을 소멸시키는 경우