Android Studio - 액티비티 라이프 사이클 (수명 활동 주기)

반응형

 

활동 수명 주기 (Activity Life Cycle)

  • 단계 간에 전환하기 위해 활동 클래스는 6가지 콜백으로 구성된 핵심 집합
  • 활동이 새로운 상태에 들어가면 시스템은 각 콜백을 호출
  • 종류 : onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()


onCreate()

  • 이 콜백은 시스템이 먼저 활동을 생성할 때 실행되는 것으로 필수적으로 구현
  • 활동이 생성되면 생성됨 상태가 됨
  • 활동의 전체 수명 주기 동안 한번만 발생해야하는 기본 어플리케이션 시작 로직을 실행
  • 이 메서드는 이전 활동의 저장 상태가 포함된 Bundle 객체인 savedInstanceState 매개변수를 수신 
    • 처음 생성된 활동의 경우 Bundle 객체의 값은 null

onStart()

  • 활동이 사용자에게 표시되고 앱은 활동을 포그라운드에 보내 상호작용 할 수 있도록 준비
  • 활동이 시작됨 상태에 들어가면 시스템이 이 콜백을 호출, 콜백이 완료되면 재개됨 상태가 됨
  • 이 메서드는 매우 빠르게 완료되고 콜백이 완료되면 시스템이 onResume() 메서드를 호출

onResume()

  • 앱이 사용자와 상호작용, 어떤 이벤트가 발생하여 앱에서 포커가 떠날 때까지 앱이 이 상태에 머무름
    • 예를 들어 전화가 오거나, 사용자가 다른 활동으로 이동하거나, 기기 화면이 꺼지는 이벤트가 이에 해당
  • 활동이 재개됨 상태에 들어가면 포그라운드에 표시되고 시스템이 이 콜백을 호출
  • 방해되는 이벤트가 발생하면 활동은 일시중지됨 상태에 들어가고 시스템이 onPause() 콜백을 호출
  • 활동이 일시중지됨 상태에서 재개됨 상태로 돌아오면 시스템이 이 메서드를 다시 한번 호출
  • onResume()와 onPause()를 구현하여 활동이 전환될때마다 필요한 다른 초기화 작업도 수행해야 함

onPause()

  • 사용자가 활동을 떠나는 것을 나타내는 첫 번째 신호로 이 메서드를 호출, 활동이 소멸되지 않음
  • 활동이 포그라운드가 아닌 백그라운드에 있게 됨, 멀티 윈도우의 경우에는 여전히 표시 될 수 있음

onStop()

  • 활동이 사용자에게 더 이상 표시되지 않으면 중단됨 상태에 들어가고 시스템이 onStop() 콜백을 호출
    • 예를 들어 새로 시작된 활동이 화면 전체를 차지 할 경우에 적용
  • 시스템은 활동의 실행이 완료되어 종료될 시점에 이 메서드를 호출 할 수도 있음
  • 이 메서드에서는 앱이 사용자에게 보이지 않는 동안 필요하지 않은 리소스를 해제하거나 조정해야 함

onDestroy()

  • 활동이 소멸되기 전에 호출
    • 사용자가 활동을 완전히 종료하는 경우
    • 구성 변경으로 인해 시스템이 일적으로 활동을 소멸 시키는 경우
  • 활동이 소멸됨 상태로 전환하면 활동이 수신하는 마지막 콜백인 onDestroy() 콜백을 호출
  • 이전의 콜백에서 아직 해제되지 않은 모든 리소스를 해제해야 함

예제

아래의 포스팅에서 예제를 통하여 실제 앱에서 작동하는 구동 원리를 상세히 확인 하실 수 있습니다.

https://luvris2.tistory.com/269

 

Activity - 멀티 액티비티 활용과 액티비티 라이프 싸이클의 이해

액티비티 (Activity) 안드로이드에서 액티비티는 앱의 화면을 뜻함 기능을 담당하는 Java 파일과 UI를 담당하는 xml 파일이 존재 하나의 Java파일에 하나의 xml파일이 연결되어 하나의 화면을 구성 액

luvris2.tistory.com

 

반응형