JongTachi의 개발 블로그

Android Activity-LifeCycle 본문

Android

Android Activity-LifeCycle

JongTachi 2022. 5. 19. 10:34
728x90
반응형

액티비티에는 특정 시점에 호출되는 여러 메서드가 있다. 예를 들어 onCreate()는 생성 시점에 호출된다. 이렇게 특정한 타이밍에 호출되는 메서드를 콜백 메서드라고 한다. 액티비티의 생명주기는 다음과 같다. 각 타이밍에 호출되는 콜백 메서드를 표시하고 있다.

Activity-Lifecycle

 

 

센서처럼 화면이 꺼져 있을 때는 센서가 동작하지 않고 화면이 켜져 있을 때만 동작하여 처리하는 경우가 있다. 만약 계속 센서가 동작한다면 배터리가 빨리 소모될 것이다. 이 처럼 적절한 타이밍에 필요한 코드를 작성하려면 생명주기를 잘 알아야 한다. 생명주기를 몇가지 구간으로 나누어서 보면 좀 더 이해하기가 쉽다.

 

1. 액티비티 시작

Start Activity

액티비티가 시작되면 가장 먼저 onCreate() 메서드가 호출된다. 즉 onCreate() 메서드를 오버라이드하여 프로그램을 작성하면 액티비티가 시작되면서 작성한 프로그램이 자동으로 시작된다. 그 다음에는 onStart() 메서드와 onResume() 메서드 순으로 호출된다.

 

2. 액티비티 종료

Stop Activity

액티비티가 종료될 때는 화면에서 보이지 않게 되는 순간 제일 먼저 onPause() 메서드가 호출되고 완전히 보이지 않게 된다면 onStop() 메서드가 호출되며 마지막으로 onDestory() 메서드가 호출된다. 간단한 앱을 작성할 때는 사용할 일이 거의 없지만, 복잡한 앱을 작성하면 액티비티가 종료될 때 메모리에서 해제하는 객체가 있을 수 있다. 이때 onDestory() 메서드를 오버라이드한다.

 

3. 액티비티 재개

 

 

Restart Activity

앱을 실행중에 종료하지 않고 백그라운드에서 대기하는 경우가 있다(글쓴이는 상당히 많다..) 예를들어 다른 앱이 실행되거나, 홈 키를 누르거나, 전원 버튼을 눌러 화면을 끄는 경우가 있다. 이때는 onPause(), onStop() 메서드까지만 호출되고 대기하게 된다. 이때 다시 앱이 전면으로 나오는 경우, 즉 화면을 다시 켜거나 최근 실행한 앱에서 다시 앱을 실행하는 경우이다. 이 때는 onRestart(), onStart(), onResume() 순으로 호출된다.

 

4. 프로세스 강제 종료

 

App process Killed

 

안드로이드의 모든 앱은 백그라운드 실행 중에는 메모리 부족 등으로 강제로 종료될 수 있다. 이 경우 앱을 다시 실행하면 onCreate() 메서드부터 호출한다.

728x90
반응형

'Android' 카테고리의 다른 글

All of Fragment  (0) 2022.06.20
Service Life_Cycle  (0) 2022.06.06
Android 구조  (0) 2022.05.18
Android Storage  (0) 2022.05.16