티스토리 뷰

액티비티 생명주기

액티비티(Activity)가 생성, 실행, 일시 중지, 종료되는 과정을 관리하는 체계


핵심 콜백(callback) 메소드

 

1. onCreate()

  • 액티비티 최초 생성 시 호출됨
  • 초기 UI 설정, 리소스 초기화, View 바인딩 등을 처리

2. onStart()

  • 액티비티를 사용자에게 표시하며 사용자와의 상호작용 준비 작업 수행

3. onResume()

  • 액티비티가 재개될 때 호출됨
  • 사용자 입력(터치, 키보드 입력 등)이 가능한 상태가 됨

4. onPause()

  • 액티비티가 부분적으로 보이지 않거나, 사용자가 액티비티를 떠날 때 호출됨

5. onStop()

  • 액티비티가 사용자에게 완전히 보이지 않을 때 호출됨 (예: 다른 액티비티가 화면 전체 표시 시)
  • 리소스 해제, 데이터 저장, 백그라운드 작업 처리 등 수행

6. onDestroy()

  • 액티비티 소멸 전 호출됨 (예: finish() 호출, 사용자가 BACK 버튼 클릭, 메모리 부족 등 시스템 제약으로 인한 소멸)
  • 리소스 정리, 메모리 해체 등의 작업 처리

특수. onRestart()

  • 정지된 액티비티가 다시 실행될 때 호출됨 (예: 사용자가 다시 액티비티로 전환 시)
  • onStop() 상태에서 onStart() 상태가 됨

액티비티 간 이동 시 액티비티 생명주기

액티비티 A 시작 시 

  1. 액티비티 A의 onCreate(), onStart(), onResume() 메소드 순차 호출

액티비티 A가 액티비티 B를 시작 시

  1. 액티비티 A의 onPause() 메소드 호출
  2. 액티비티 B의 onCreate(), onStart(), onResume() 메소드 순차 호출
  3. 액티비티 A가 화면에서 보이지 않는 경우, 액티비티 A의 onStop() 메소드 호출

액티비티 B 종료(finish() 호출) 및 액티비티 A로 복귀 시

  1. 액티비티 B의 onPause(), onStop(), onDestory() 메소드 순차 호출
  2. 액티비티 B가 종료되고 액티비티 A가 다시 복귀되는 경우, 액티비티 A의 onRestart() 메소드 호출
  3. 액티비티 A의 onStart(), onResume() 메소드 순차 호출

화면 회전(가로/세로 전환) 시 액티비티 생명주기

액티비티 A 시작 시 

  1. 액티비티 A의 onCreate(), onStart(), onResume() 메소드 순차 호출

액티비티 A 실행 중 화면 회전 시

  1. 액티비티 A의 onPause(), onStop(), onDestory() 메소드 순차 호출
  2. 화면 회전 후 다시 액티비티 A가 재생성 되어, 액티비티 A의 onCreate(), onStart(), onResume() 메소드 순차 호출
공지사항
링크