본문 바로가기

안드로이드/안드로이드

[안드로이드] 안드로이드 생명주기

우리가 안드로이드 App을 사용하다 보면 로그인 화면, 회원가입 화면부터 메인, 검색 등 다양한 화면들을 접하게 된다.

이 각각의 화면들은 Activity에 속해 있으며, Activity에는 생명 주기가 있다.

 

보다 자세한 내용은 공식 문서를 참조 바랍니다.

 

안드로이드 생명 주기

Activity 생명주기에는 다음과 같이 6가지로 이루어져 있다.

출처 - 안드로이드 공식문서

1. onCreate()

Activity를 실행할 때 처음으로 호출하며, XML을 정의한다.

단 한번만 호출되기 때문에 한 번만 초기화하면 되는 것들은 해당 상태에서 초기화하게 됩니다.

 

2. onStart()

onCreate() 함수 이후 호출

Acitivity가 사용자에게 표시되며, Activity를 포그라운드에 보내 상호작용 할 수 있도록 준비한다.

 

3. onResume()

onStart() 함수 이후 호출

사용자와 상호작용을 하며, 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 앱이 이 상태에서 머무른다.

 

4. onPause()

잠시 후 다시 실행 될 작업을 일시정지 또는 조정한다.

 

5.onStop()

더는 사용자에게 표시되지 않으면 중단됨 상태에 들어가며, onStop() 함수가 호출된다.

 

6. onDestroy()

해당 Activity가 소멸되기 이전에 호출된다.

 

 

예시

로그인과 회원가입 상황으로 위의 함수들의 호출되는 경우를 살펴보겠습니다.

 

App 실행 (로그인 페이지)

1. onCreate() 함수 호출 - XML 정의

2. onStart() 함수 호출 - 준비

3. onResume() 함수 호출 - 사용자와 상호작용 및 이벤트 대기

 

회원가입 버튼 클릭 (이벤트 발생) - [화면이 회원가입으로 전환]

1. 로그인 Activity

백그라운드로 전환되며, onResume() -> onPause() -> *onStop() 함수 호출

* 회원가입 화면으로 인해 로그인 Activity가 보이지 않음으로 onStop() 호출, 만일 일부라도 로그인 Activity가 보인다면 onStop()은 호출되지 않는다.

 

2. 회원가입 Activity

포그라운드 상태로 전환 되며, onCreate() -> onStart() -> onResume() 함수 호출

 

회원가입 완료

1. 회원가입 Activity

onResume() -> onPause() -> onStop() -> onDestroy() 함수 호출 후 소멸

 

2. 로그인 Activity

포그라운드 상태로 전환되며, onStop() -> onStart() -> onResuem() 함수 호출

 

 

실제 테스트

MainActivity & SecondActivity