[android] activity lifecycle

sundays·2023년 3월 19일
0

android

목록 보기
11/18
post-custom-banner

안드로이드는 메모리 관리를 위해 자체 CPU에서 제공하고 있는 lifecycle이 있습니다. 특히 여러 작업이 순차적으로 진행되어야 하는 앱을 작성할때에 lifecycle의 statechanged를 감지할 수 있는 기능들이 존재하는데요. 보통은 acitivity나 fragment에서 override하여 사용되고 있습니다.

Activity Lifecycle

onCreate()

  • activity 생성됨
  • activity 초기 생성시 callback
  • 데이터를 목록에 바인딩, viewmodel과 연결
  • savedInstanceState 매개변수를 수신하는데 activity 이전 저장 상태가 포함된 bundle 객체가 있습니다. (초기 생성시 bundle의 값은 null)
  • UI, 멤버 변수의 기본 설정

onStart()

  • activity 시작됨
  • 사용자에게 표시되고 activity를 fore-ground에서 상호작용 할수 있도록 준비

onResume()

  • activity 재개됨
  • 앱이 사용자와 상호 작용
  • 포커스가 떠날 때까지 앱이 이 상태에 머무릅니다.
    • 전화가 올때
    • 사용자가 다른 activity로 이동 할때
    • 기기 화면이 꺼질때
  • fore-ground에서 사용자에게 보이는 동안 실행해야 하는 모든 기능을 활성화할 수 있다
    • 카메라 미리보기 시작
  • 방해되는 이벤트가 발생시 일시중지됨 상태에 들어가서 onPause() 콜백을 호출

onPause()

  • activity 중지함
  • acitvity가 fore-ground에 있지 않게 되었을때
    • 멀티 윈도우 모드에 있을 때
    • 새로운 반투명 activity(대화상자)가 열릴때

onStop()

  • activity 중단됨
  • 새로 시작된 activity가 전체 화면을 차지 하게 될 경우
  • 앱은 필요하지 않은 리소스를 해제, 멀티 윈도우 일때도 ON_STOP을 사용하면 UI관련작업이 진행
  • cpu를 많이 사용하는 소모하는 종료 작업을 실행

onDestroy()

  • activity 소멸됨
  • activity를 닫거나 activity에서 finish() 가 호출되어 종료
  • 구성 변경(회전 또는 멀티 윈도우) 로 인해 시스템에서 일시적으로 activity를 소멸
    • 이 경우에는 즉시 새 activity instance를 생성한 다음 새로운 구성에서 그 인스턴스의 onCreate()가 생성된다
  • 이전에 콜백에서 해제 되지 않은 모든 리소스를 해제 해야한다

Reference

profile
develop life
post-custom-banner

0개의 댓글