[Android] 액티비티의 생명주기

[Android] 액티비티의 생명주기

2-4-1-1

  • 액티비티생명주기(Activity Lifecycle)는 액티비티가 생성되어 소멸되기까지의 과정을 말한다.
  • 액티비티 상태는 3가지로 나뉘는데 이 상태에 따라서 앱이 어떻게 동작되어야할지 생각학고 구현을 해야한다.
    • 액티비티의 3가지 상태
      1. 활성 : 액티비티 화면이 출력되고 있으며 사용자가 이벤트를 발생시킬 수 있음
      2. 일시 정지 : 액티비티의 화면이 출력되고 있으나 사용자가 이벤트를 발생시킬 수 없음
      3. 비활성 : 액티비티의 화면이 출력되고 있지 않은 상태
    • 액티비티의 순서
      • onCreate()onStart()onResume()onPause()onStop()onDestroy()
메소드설명다음 메소드
onCreate()액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용되며 필수적으로 구현해야함.onStart()
onRestart()액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨. 액티비티가 실행을 종료하면 시스템은 onDestroy를 호출함onStart() 또는 onDestroy()
onStart()액티비티가 사용자에게 보여지기 바로 직전에 호출됨. 앱이 활동을 포그라운드에 보내 상호작용 할 수 있도록 준비함. 이 메서드는 매우 빠르게 완료되고 다음 메서드를 호출함onResume() 또는 onStop()
onResume()액티비티가 사용자와 상호작용하기 바로 전에 호출됨. 이 상태에 들어갔을 때 앱이 사용자와 상호작용하고 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에 머무름(전화오거나, 사용자가 다른화면으로 이동하거나, 기기가 꺼지는 이벤트가 있을때가 이에 해당함)onPause()
onPause()다른 액티비티가 보여질 때 호출됨. 이 메서드는 아주 잠깐실행되므로 저장 작업을할때는 시간이 부족할 수 있음. 그러므로 이 메서드를 사용하여 사용자 데이터를 저장하거나 네트워크호출, 데이터베이스 트랜잭션 등을 수행하면 실행이 끝나기전에 완료되지 못할 수 있음. 부하가 큰 종료 작업은 onStop 에서 해야함onResume() 또는 onStop()
onStop()액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨. 메모리가 부족할 경우에는 onStop() 메소드가 호출되지 않을 수도 있음.onRestart() 또는 onDestroy()
onDestroy()액티비티가 소멸될 때 호출됨. finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨.없음

※ onStop(), onDestory()는 호출되지 않을 수도 있음

Activity 생명주기에 따른 View,Fragment의 생명주기

img


© 2023. All rights reserved.

AgileCatch