Today's special moments become memories of tomorrow.

Android

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

lotus lee 2021. 3. 8. 22:10

안드로이드는 상태 변화가 있을 때마다 생명 주기 메서드를 호출한다.

사용자가 호출하는 것이 아니라 상태 변화에 따라 안드로이드가 자동으로 호출해주기 때문에 콜백 메소드이다. 

 

 

 

 

 

onCreate()

앱이 실행되어 액티티비가 생성되면 제일 먼저 onCreate()가 호출된다.

화면에 보이게 될 뷰를 설정하거나 초기화한다.

 

onStart()

onCreate()가 호출된 이후에 화면이 사용자에게 보여질 때 호출된다.

액티비티가 실행되면 onCreate() 다음에 onStart()가 호출된다.onCreate() -> onStart()

 

onResume() 

이 함수가 호출된 시점부터는 액티비티가 '실행 중'인 상태이다.

액티비티를 생성하면 다음과 같은 순서대로 메서드가 호출된다.

onCreate() -> onStart() -> onResume()

 

onPause()

현재 액티비티에서 다른 액티비티를 시작할 때 호출된다.

 

현재 액티비티의 일부라도 화면에 보인다면 onPause()를 호출하고 현재 액티비티는 일시 정지 상태가 된다.

예를 들어 새로 실행되는 액티비티가 다이얼로그처럼 화면의 일부만 차지하거나, 투명한 상태이면

현재 액티비티는 정지 상태까지 가지 않고 일시 정지로 머무른다. 그러다 실행 중인 액티비티가 종료되면 현재 액티비티는 onResume()을 통해 다시 실행 상태가 된다.

 

하지만 새로 생성된 액티비티가 현재 액티비티의 전부를 가린다면 onPause()호출 후, onStop()이 호출되어 정지 상태로 전환된다.

 

onStop()

현재 액티비티가 다른 액티비티에 완전히 가려져서 더 이상 보이지 않게 될 때 호출된다.

 

onRestart()

현재 액티비티가 중지되었다가 다시 재개될 때 호출된다.현재 액티비티를 가렸던 다른 액티비티가 '뒤로가기'를 통해 종료되면 현재 액티비티는 onRestart() -> onStart() -> onResume() 을 거쳐서 다시 실행 상태로 변경된다.

 

onDestroy()

현재 액티비티가 소멸될 때 호출된다.

현재 액티비티에서 '뒤로가기' 버튼을 누르거나 다른 앱에 의해 강제로 종료될 경우에는 

onPause() -> onStop() -> onDestory() 순서대로 메서드가 호출되면서 액티비티가 완전히 종료되고,

메모리에서도 액티비티가 제거된다.

 

'Android' 카테고리의 다른 글

[안드로이드] dp(dip)란 무엇인가?  (4) 2021.04.12
[Android] Context 란?  (0) 2021.04.08
[Android] 안드로이드 4대 컴포넌트  (0) 2021.04.06