Sam Story

Activity 생명주기(Activity LifeCycle) 본문

Android

Activity 생명주기(Activity LifeCycle)

Sam H 2024. 3. 8. 18:39

액티비티는 안드로이드 4대 컴포넌트 중에 하나이다.

그 중에서도 UI와 가장 밀접한 관련을 가지고 있기 때문에 가장 기본이 되는 구성 요소이다.

 

쉽게 나타내면 액티비티는 앱을 실행했을때 보이는 하나의 화면이라고 생각하면 된다.

 

이런 액티비티의 생명주기는 다음그림과 같다.

 

생명주기를 쉽게 이해하려면 실제 화면에 보이는 상태를 생각해보면 된다.

먼저 최초로 액티비티를 실행할때 호출되는 함수가 onCreate()가 호출된다.

그 다음으로는 onStart()가 호출되고 이어서 onResume()이 호출된다.

 

액티비티가 실행중인 상태에서 포커스를 잃은 상태가 되면 onPause()가 호출된다.

그런 후에 액티비티가 더이상 보이지 않을때 onStop()가 호출된다.

그리고 액티비티가 종료 되거나 앱 프로세스 자체가 종료되면 onDestroy()가 호출된다.

 

그리고 이러한 생명주기는 activity 에서 Override를 한 후 로그를 통해 확인할 수 있다.

 

위와 같이  필자는 액티비티를 만들면 일단 생명주기에 관한 로그들을 먼저 찍어놓고 작업을 시작한다.

그래서 액티비티의 상황에따라 생명주기가 어떻게 변하는지를 확인하고 이러한 생명주기들을 고려하여

코드를 짜는것이 기본 소양이라고 생각한다.

 

이제 이러한 각 생명주기에 대해 설명하자면

 

onCreate()

 

액티비티가 생성될 때 호출된다.

액티비티의 전체 수명 기준으로 한번만 발생하고

기본으로 세팅되어야 하는 데이터들을 초기화 해주는 역할을 한다.

 

onStart()

 

액티비티가 사용자에게 보여지기 직전에 호출된다.

 

 

onResume()

 

다른 액티비티가 보여질 때, 화면에서 멀어졌을 때 등 호출된다. (즉 액티비티가 포커스를 잃은 상태)

 

onStop()

 

onPause() 다음으로 이어지며 마찬가지로 다른액티비티가 보여질 때, 화면에서 멀어졌을때 등 호출된다.

 

onRestart()

 

액티비티가 onStop() 상태에서 다시 시작하려고 할 때 호출된다.

 

onDestroy()

 

액티비티가 완전히 종료되었을 때 호출된다.

시스템에서 메모리 확보를 위해 액티비티를 제거할 때도 호출된다.

 

 

 

이렇게 액티비티 생명주기에 대해 알아보았다.

처음 앱을 만들때에는 onCreate() 에 대부분의 변수 초기화 및 메서드들을 구현해놨었는데

점점 다양한 기능들을 쓰다보니

액티비티의 상태에 따라서 여러 생명주기들을 다뤄야 할 때가 많이 생기기도 했다.

이러한 생명주기를 고려한 코드들을 짜야 원할하게 기능들이 작동하는 경우가 빈번하게 생기므로

항상 생명주기를 확인하는 습관을 들이도록하자.

'Android' 카테고리의 다른 글

레트로핏 (Retrofit)  (0) 2024.03.26
뷰 바인딩 (ViewBinding)  (0) 2024.03.19
Visibility 속성  (2) 2024.03.16
쉐어드프리퍼런스(Sharedpreferences)  (0) 2024.03.12
리사이클러뷰(RecyclerView)  (1) 2024.03.12