[Android]Activity 생명 주기

김영훈·2021년 5월 15일
0

액티비티(Activity)란?

Activity는 사용자가 애플리케이션과 상호작용하는 단일 화면을 의미합니다.
모든 안드로이드 애플리케이션은 이 Activity들로 구성되어 있으며
즉, 사용자와 상호작용을 담당하는 인터페이스라고 할 수 있습니다.

액티비티 생명주기

사용자가 앱을 탐색하고, 앱에서 나가고, 앱으로 다시 돌아가면, 앱의 Activity 인스턴스는 생명 주기 안에서 서로 다른 상태를 통해 전환됩니다.

Activity 클래스는 이러한 상태 변화(시스템이 활동을 생성, 중단, 또는 다시 시작하거나, 프로세스를 종료하는 등)를 알아차릴 수 있는 여러 콜백 메서드를 제공합니다.


  1. onCreate()
    이 콜백은 시스템이 먼저 Activity를 생성할 때 실행되는 것으로 onCreate() 메서드에서 Activity의 전체 생면 주기 동안 한번만 발생해야 하는 기본 애플리케이션 시작 로직을 실행합니다.

  2. onStart()
    Activity가 시작됨 상태에 들어가면 시스템은 onStart() 콜백을 호출합니다.
    그리고 Activity가 사용자에게 표시되고, 앱은 Activity를 포그라운드에 보내 사용자와 상호작용할 수 있도록 준비합니다.

    예를 들어 이 메서드에서 앱이 UI를 관리하는 코드를 초기화합니다.
    이 콜백이 완료되면 시스템이 onResume() 메서드를 호출합니다.

  3. onResume()
    Activity가 프그라운드에 표시되고 시스템이 onResume() 콜백을 호출합니다.
    이 상태에 들어갔을 때 앱이 사용자와 상호작용하며 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무릅니다.

    이 상태에서 방해되는 이벤트가 발생하면 시스템은 onPause() 콜백을 호출하고 Activity는 일시중지 상태가 됩니다.

    Activity가 일시중지 상태에서 다시 재개되면 시스템이 onResume() 메서드를 호출합니다.

  1. onPause()
    시스템은 사용자가 Activity를 떠나는 것을 나타내는 첫 번째 신호로 이 메서드를 호출합니다.
    즉 해당 Activity가 포그라운드에 있지 않게 되었다는 것을 나타냅니다.

    Activity가 일시중지 상태에서 다시 시작되거나 사용자에게 완전히 보이지 않게 될 때까지 이 상태에 머무릅니다.

    Activity가 완전히 보이지 않게 되면 onStop()을 호출합니다.
  1. onStop()
    Activity가 사용자에게 더 이상 표시되지 않으면 중단 상태에 들어가고, 시스템은 onStop() 콜백을 호출합니다.
    예를 들어 새로 시작된 활동이 화면 전체를 차지할 경우에 적용됩니다.

    Activity는 정지 상태에서 다시 시작되어 사용자와 상호작용하거나, 실행을 종료하고 사라집니다.
    Activity가 다시 시작되면 시스템은 onRestart()를 호출하고 Activity가 실행을 종료하면 시스템은 onDestory()를 호출합니다.
  1. onDestory()
    onDestory()는 Activity가 소멸되기 전에 호출됩니다.

    1. (사용자가 Activity를 완전히 닫거나 Activity에서 finish()가 호출되어) Activity가 종료되는 경우

    2. 구성 변경(ex : 기기 회전 or 멀티 윈도우 모드)로 인해 시스템이 일시적으로 Activity를 소멸시키는 경우

0개의 댓글