안드로이드 앱 개발 공부/안드로이드 기본(노션 이동)

[Android] Activity LifeCycle : 액티비티 생명주기

플래시🦥 2023. 3. 3.
반응형

 Activity가 시작되고 종료되는 시점까지의 상태를 말한다.

 

-활동 수명 주기 단계 간에 전환하기 위해 활동 클래스는 6가지 콜백으로 구성되어 있다.

[onCreate()], [onStart()], [onResume()], [onPause()], [onStop()], [onDestroy()]

oncreate()

  • 이 콜백은 시스템이 먼저 활동을 생성할 때 실행되는 것으로 필수적으로 구현되어야 한다.
  • 활동이 생성되면 “생성됨” 상태가 됨.
  • 활동의 전체 수명 주기동안 한 번만 발생해야 하는 기본 애플리케이션 시작 로직을 실행.

onStart()

  • 활동이 “시작됨” 상태에 들어가면 콜백 됨.
  • 액티비티가 사용자에게 보이기 직전에 실행됨. BroadCast Reciever 실행.
  • onstart()가 호출되면 활동이 사용자에게 표시되고, 앱은 활동을 포그라운드에 보내 상호작용 할 수 있도록 준비한다.
  • 이 콜백이 완료되면 “재개됨” 상태에 들어가고 onResume() 메서드를 호출.

onResume()

  • 활동이 재개됨 상태에 들어가면 포그라운드에 표시되고 시스템이 onResume() 콜백을 호출.
  • 이 상태에 들어갔을 때 앱이 사용자와 상호작용.
  • 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무른다.
  • 방해되는 이벤트가 발생하면 활동은 ”일시중지됨” 상태에 들어가고, 시스템이 onPause()  콜백을 호출
  • 활동이 일시중지됨 상태에서 재개됨 상태로 돌아오면 시스템이 onResume() 메서드를 다시 한번 호출
  • 예 : 카메라 미리 보기 시작

onPause()

  • 시스템은 사용자가 활동을 떠나는 것을 나타내는 첫 번째 신호로 이 메서드를 호출.
  • 활동이 포그라운드에 있지 않게 되었다는 것.
  • 포커스를 잃어 화면이 부분적으로 보이지만 곧 사라질 때 실행.
  • 이 메서드를 사용해서 사용자의 데이터를 저장하거나, 네트워크를 호출하거나, 데이터베이스 트랜젝션을 실행해서는 안됨
  • 예 : 카메라 미리 보기 정지

onStop()

  • 활동이 사용자에게 더 이상 표시되지 않으면 ”중단됨*”* 상태에 들어가고, 시스템은 onStop() 콜백을 호출.
  • 새로 시작된 활동이 화면 전체를 차지할 경우에 적용.
  • 시스템은 활동의 실행이 완료되어 종료될 시점에 이 메서드를 호출할 수도 있음.
  • onPause() 대신 onStop()을 사용하면 사용자가 멀티 윈도우 모드에서 활동을 보고 있더라도 UI 관련 작업이 계속 진행됨.
  • CPU를 비교적 많이 소모하는 종료 작업을 실행해야 함. 예 : 정보를 데이터 베이스에 저장할 적절한 시기를 찾지 못했다면 이때 저장할 수 있음.
  • 예 : 애니메이션을 일시중지, 세밀한 위치 업데이트에서 대략적 위치 업데이트로 전환

onDestroy()

  • 활동이 소멸되기 전에 호출.
  • 화면전환 혹은 화면이 완전히 종료되기 직전에 호출.
  • 시스템은 다음 중 하나에 해당할 때 이 콜백을 호출.
    1. (사용자가 활동을 완전히 닫거나 활동에서 [finish()](<https://developer.android.com/reference/android/app/Activity?hl=ko#finish()>)가 호출되어) 활동이 종료되는 경우
    2. 구성 변경(예: 기기 회전 또는 멀티 윈도우 모드)으로 인해 시스템이 일시적으로 활동을 소멸시키는 경우
728x90
반응형

댓글