본문 바로가기

Android

[Android] 안드로이드 생명주기(Lifecycle)

반응형

들어가기 전..

Activity는 UI와 밀접한 관련을 가지고 있는 컴포넌트로 앱에 있어 기본이 되는 구성요소이다.

액티비티는 생명주기를 갖는데 이 순서에 따라 메소드가 호출되므로 숙지할 필요가 있다.

생명주기 순서는 하단의 블로그를 참고하여 정리하였다.

 

 

[Android] Activity의 개요 및 Activity의 생명 주기 소개

1. Android Activity 개요 Activity이란 안드로이드 어플리케이션을 구성하는 기본 요소이다. Activity은 UI가 생성되는 틀을 제공하며 기본적으로 화면에 나타난다. Activity과 달리 화면에는 나타나지 않지

androman.tistory.com

 


 

Android Activity Lifecycle

 

Understand the Activity Lifecycle  |  Android Developers

An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window in which to draw its user interface

developer.android.com

 

 

1. onCreate() 

  • 화면 정의하는 용도로 많이 사용
  • onCreate()는 콜백 메소드이며 Activity가 생성될 때 한번 실행되는 메소드이다.
  • 'savedInstanceState'라는 파라미터를 수신하며 이 파라메터는 Activity의 이전 상태를 저장한 'Bundle'객체입니다.
  • Activity가 처음 생성된 경우에 savedInstancdState는 null 상태이다.
  • 생성단계에서 onCreate()안에서 setContentView()에 레이아웃을 전달하여 화면을 정의한다.

 

2. onStart()

  • Activity가 사용자에게 보이기 시작하는 단계
  • 백그라운드가 아닌 포그라운드로 나와 사용자와 상호작용을 준비하는 단계.
  • 아직 사용자와 상호작용은 불가능

 

3. onResume()

  • 사용자와 상호작용하는 단계
  • Activity 스택의 Top에 위치
  • 주로 어플 기능이 onResume()에 설정됨
  • Activity에서 포커스가 없어질 때까지 이상태가 지속됨
  • 포커스가 사라지면 Activity가 일시중지 상태가 된다.
  • Activity가 일시중지 상태가 되면 onPause() 메소드가 호출된다.
  • 일시중지 상태에서 다시 Activity가 활성화 되면 onResume()이 호출된다.
  • onResume()이 호출되면 Activity가 재개될때 필요한 초기화 작업을 수행

 

4. onPause()

  • Activity 스택의 최상위에 있던 Activity에서 focus가 사라질때 호출. (ex. 전화 온 경우. 다른 화면으로 잠시 이동)
  • background에 Activity가 위치
  • 멀티 윈도우 모드에서는 Activity가 백그라운드에 위치해도 화면에는 보일 수 있다.
  • Activity가 백그라운드에 있을 때 필요치 않은 기능을 해제하는데 사용할 수 있다.
  • 이벤트 수행 전에 끝나는 경우가 생기기 때문에 지속시간이 짧다.
  • 데이터 저장 또는 호출 같은 트랜잭션은 사용하지 않는다.
  • onStop() 이나 onResume() 상태로 전환
  • 실행 시간이 긴 이벤트는 Activity가 멈춘 onStop() 메소드에서 사용한다.

 

5. onStop()

  • Activity가 사용자에게 보이지 않는 단계
  • 일시중지(ON_PAUSE) 상태의 Activity가 완전히 중지됐을 때 호출됨. ex) 다른 Activity가 새로 시작되어 화면을 차지한 경우 , Activity 작동이 완료되어 화면에서 사라진 경우
  • Activity가 중지됐을 때 필요없는 자원을 해제시키거나 조정한다.
  • 부하가 큰 작업을 하기에 적당하다. ex) 데이터 처리와 관련된 트랜잭션
  • onDestroy() 나 onRestart() 상태로 전환 가능

 

6. onDestroy()

  • Activity가 호출하는 마지막 메소드
  • Activity가 소멸되기 직전에 호출. ex) Activity를 완전히 닫거나 Activity에서 finish() 메소드를 호출한 경우
  • Activity가 소멸될때 ViewModel 객체를 이용하면 Activity의 뷰 데이터를 보관할 수 있다.
  • ViewModel에 저장된 뷰 데이터는 화면 회전 등으로 뷰 데이터를 그대로 사용할 경우 유용하다.
  • 화면 회전 등의 구성 변경으로 Activity가 종료된 경우에는 바로 새로운 Activity가 onCreate()된다.
  • Activity에 있는 데이터를 더 이상 쓰지 않는다면 onDestroy 단계에서 모두 정리해줘야 한다.

 

 

 

반응형