본문 바로가기
Android

[안드로이드] 액티비티 수명(Life Cycle)

by Sky Titan 2020. 9. 8.
728x90

액티비티 수명

  • 안드로이드는 액티비티가 상태 변화에 반응할 수 있도록 일련의 이벤트 핸들러를 제공
  • 이벤트 핸들러는 액티비티가 전체 수명(full lifetime), 가시 수명(visible lifetime), 활성 수명(active lifetime)으로 전환될 때 자동 호출되어 실행

전체 수명 (full lifetime)

  • onCreate가 처음 호출될 때부터 소멸할 때까지
  • onDestory 핸들러 호출 없이 중단되는 경우도 있음

1. onCreate

  • 액티비티 초기화
  • 구체적으로 UI 전개, 프래그먼트 참조 가져옴, 참조를 클래스 변수에 저장, 데이터를 컨트롤에 바인딩, 서비스 시작
  • 액티비티가 예기치 못하게 종료 시 onSaveInstanceState의 마지막 호출 때 저장된 상태 데이터가 담긴 Bundle 객체가 onCreate 메서드에 전달됨

※ 효율적인 코드 작성을 위해 잠시 사용할 객체를 반복 생성 x

-> 정해진 객체들 생성은 onCreate에서

-> 액티비티의 수명에서 딱 한 번만 호출되기 때문

2. onDestroy

  • 네트워크 또는 데이터베이스 링크와 같은 외부 연결 닫혔는지 확인

 

가시 수명 (Visible lifetime)

  • onStart에서 onStop 호출까지
  • 액티비티가 사용자에게 보여짐 but 포커스의 유무와 무관
  • 액티비티가 부분적으로 가려질 수 있음

1. onStart

  • 정지된 프로세스 재시작

2. onStop

  • UI 업데이트할 때 사용되는 프로세스들 일시 정지 또는 정지

3. onRestart

  • onStart 최초 호출 때를 제외하고 모든 경우에 앞서 호출
  • 액티비티가 전체 수명 안에서 재시작될 때만 수행되는 특별한 처리 구현시 사용

활성 수명

  • onResume 에서 onPause 호출 때 까지
  • 포어그라운드
  • 사용자 입력 이벤트 받음
728x90

댓글