[Android] LifeCycle 생명 주기

Gyeongmin·2022년 10월 8일
0
post-thumbnail

사용자가 앱을 탐색하고, 앱에서 나가고, 앱으로 다시 돌아가면, 앱의 Activity 인스턴스는 수명 주기 안에서 서로 다른 상태를 통해 전환됩니다.

LifeCycle

액티비티가 생성되고, 소멸되기까지 다양한 생명 주기를 가지고 있습니다.
생명주기 관련 메서드를 Override하여 잘 구현한다면, 앱이 비정상적으로 동작하는 문제가 발생하지 않도록 예방할 수 있습니다.

LifeCycle 메서드

메소드설명다음 메소드
onCreate()액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용됨.onStart()
onRestart()액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨.onStart()
onStart()액티비티가 사용자에게 보여지기 바로 직전에 호출됨.onResume() 또는 onStop()
onResume()액티비티가 사용자와 상호작용하기 바로 전에 호출됨.onPause()
onPause()다른 액티비티가 보여질 때 호출됨.
데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 메소드.
onResume() 또는 onStop()
onStop()액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨.
메모리가 부족할 경우에는 onStop() 메소드가 호출되지 않을 수도 있음.
onRestart() 또는 onDestroy()
onDestroy()      액티비티가 소멸될 때 호출됨.
finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨.
없음

출처 : https://kairo96.gitbooks.io/android/content/ch2.4.1.html

LifeCycle의 구조

액티비티는 다음과 같은 구조로 동작합니다.

2개의 액티비티가 있는 경우 LifeCycle 호출 순서

1. 메인 액티비티에서 서브 액티비티를 호출

MainActivity - onPause()
SubActivity - onCreate()
SubActivity - onStart()
SubActivity - onResume()
MainActivity - onStop()

2. 1번 이후 서브 액티비티에서 메인 액티비티를 호출

SubActivity - onPause()
MainActivity - onRestart()
MainActivity - onStart()
MainActivity - onResume()
SubActivity - onStop()
SubActivity - onDestroy()

profile
HSU 21 이경민

0개의 댓글