plzy의 개발 블로그

[Android] Activity life cycle 완벽 분석하기 본문

Android

[Android] Activity life cycle 완벽 분석하기

plzyhappy 2021. 6. 29. 21:09

Android 공부를 하는 사람은 알겠지만, Android는 라이프사이클 즉 수명주기를 가지고 있다. 

앱이 켜지는 그 순간부터 끄는 그 순간을 주기로 나타내는 것인데, 각각의 상황속에서 해야할 코드를 작성해야한다.

 

Activity의 라이프사이클을 살펴보자

 

oCcreate

oncreate는 처음으로 activity 가 생성될때 나타난다. 이 메소드에서는 viewModel, dataBinding or viewBinding을 연결한다.

 

onStart

oncreate 다음에 나타는 주기이다. activity가 시작되기 전에 실행된다. 예를들어 로그인을 한다고 칠 때 만약 로그인이 되어있으면 메인화면으로 넘어가게 할때 사용된다.

 

onResume

이제 액티비티가 실행되고 동작하기 바로 직전에 실행된다. 보통 임시저장된 데이터를 불러오는데 많이 쓰인다.

 

onPause

onPause는 생명주기 상으로 사용자에게 보이지 않을 때 사용된다. A -> B로 activity가 이동할 때 A에서 잠시동안 데이터를 저장해야할 때가 있다. 이때 저장하는 코드를 onPause에서 쓴다.

 

onStop

액티비티가 완전히 안보이는 상태이다. 그런데 onStop일때 다시 앱을 킬수도 있는데 onRestart->onStart 생명주기로 넘어간다.

 

onRestart

액티비티가 중단되었다가 다시 시작하기 직전에 호출된다. onStart가 따라온다.

데터베이스에 정보를 쓰는 작업과 같이 규모가 크고 CPU를 많이 사용하는 종료 작업을 수행하는 경우 onStop()을 사용해야 한다.

 

onDestroy

액티비티가 완전히 종료되었을 때 호출된다. 다시 앱을 키면 onCreate부터 간다.

 

OnCreate->OnStart->OnResum 은 앱이 실행되기 전에 차례대로 호출하는 순서라고 이해하면 쉽다.