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() : 활동이 소멸되기 전에 호출된다. 시스템이 다음 중 하나에 해당할 때 이 콜백을 호출한다.
  1. (사용자가 활동을 완전히 닫거나 활동에서 finish()가 호출되어) 활동이 종료되는 경우
  2. 구성 변경(예: 기기 회전 또는 멀티 윈도우 모드)으로 인해 시스템이 일시적으로 활동을 소멸시키는 경우

0개의 댓글