Android Studio/Android

Activity의 생명주기

ksb0511 2020. 2. 29. 04:13

- onCreate()메소드

기본적으로 액티비티를 상속받으면 화면을 구성하기 위해서 가장 먼저 호출되는 메소드
자바로 치면 메인메소드 같은 존재
처음에 가장 먼저 딱 한번만 호출.

- onStart()메소드

화면이 다른 곳에 있다가 이 해당앱으로 전환될 때 호출된다. 앱이 켜질 때 마다 호출, onResume()메소드 전에 실행됨

-onResume()메소드

화면이 다른 곳에 있다가 이 해당앱으로 전환될 때 호출된다. 앱이 켜질 때 마다 호출
사용자가 액티비티에 포커스를 잡은 상태


다른 액티비티 등장


-onPause() 메소드

다른 액티비티가 호출 될 때, 완전히 가려지기 전까지의 단계
사용자가 액티비티에 포커스를 잃었을 때 호출되는 함수

-onStop() 메소드

다른 액티비티가 호출 되었을 때 완전히 가려졌을 경우 호출되는 함수

-onRestart() 메소드

액티비티가 멈춰 있다가 다시 호출 될 때, 사라졌다가 다시 시작될 때

-onDestroy() 메소드

액티비티가 완전히 스택에서 없어질 때 호출, finish()메소드가 호출되거나 종료될 경우



Log를 찍어 확인하는 방법이 가장 좋음.
Log.i("태그", "onCreate");
Log.i("태그", "onStart");
Log.i("태그", "onResume");
이런식으로 실행하여 앱의 동작이 변화할 때마다 로그가 어떻게 찍히는 지 확인하면 좋음.

ex) 앱이 구동될 때 (에뮬레이터를 실행시켰을 경우)

log값으로 onCreate, onStart, onResume이 찍힐 것이다. 이것을 통해 에뮬레이터를 실행시키면서 앱이 동작하기 시작했으므로 가장 먼저 처음에 딱 한 번 호출되는 onCreate() 메소드가 호출되는 것을 알 수 있을 것이다. 그리고 이어서 첫 화면이 해당화면이기 때문에 앱이 완전히 켜질때까지 (앱이 켜지기 시작하는 순간부터 창이 100프로 생성되는 사이) onStart() 메소드가 호출되고, 이어서 창이 100프로 동작하기 시작할 때 포커스를 잡았다라는 의미로 onResume() 메소드가 호출됨을 알 수 있다.