[Android] 액티비티 생명주기(LifeCycle)란?

Twaun·2021년 11월 14일
0

Android

목록 보기
7/24
post-thumbnail

LifeCycle 이란?

앞서 알아본 4대 구성 요소 중 하나인 activity는 생명주기가 존재하며 생명주기 전체에 걸쳐 여러 상태로 구분 되어 있다. 그리고 이러한 상태는 콜백 형태로 호출이 되고 각 상태에 맞게 올바른 동작이 구현되어야 한다.

[참조] https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko

플로우 차트를 보면 생명주기 흐름을 쉽게 파악 할 수 있다.
크게 구분해보자면
시작과 관련 : onCreate, onStart, onResume
종료와 관련 : onPause, onStop, onDestroy
재시작과 관련 : onRestart, onResume

onCreate

  • 액티비티가 생성됬을 때 최초 한번만 호출된다.
  • Binding과 같은 최초 한번만 실행될 코드를 작성한다.

onRestart

  • onStop 이후에 다시 onStart 호출되기 전에 호출된다.
  • 최초 onStart가 아닌 onStop을 한번이라도 거치고 onStart 했을 때를 위한 코드를 작성한다.

onStart

  • 액티비티가 그려지기 시작할 때 호출된다.
  • 앱을 잠시 나갔다(onStop) 다시 켰을 때, 화면이 다시 보일 때 호출된다.
  • 통신 등 초기값을 위한 코드를 작성한다.

onResume

  • onPause 이후에 다시 실행될 때 호출된다.
  • 팝업 등(onPause) 이후에 실행될 코드를 작성한다.

onPause

  • 팝업 등 액티비티 위에 다른 것이 보여지고 있을 때 호출된다.

onStop

  • 액티비티가 보이지 않는 상태에 호출된다.

onDestroy

  • 액티비티가 완전히 종료되고 사라졌을 때 호출된다.
  • 혹시나 존재할 메모리 누수를 방지할 코드를 작성한다.

7가지 생명주기 메서드가 존재하고 특정 상태가 시작됨과 동시에 해당 콜백 메서드가 호출된다. 한번에 하나의 메서드가 호출되며 하나의 메서드가 끝나면 플로우에 따라 다음 메서드가 이어서 호출되기도 하는 일련의 과정이 존재한다.

액티비티에서 이 메서드들을 오버라이드하여 각 상태에 필요한 코드를 작성해보자!

profile
Android Developer

0개의 댓글