ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] Activity Life Cycle
    안드로이드 2022. 1. 11. 15:00
    728x90
    반응형

    Activity Life Cycle이란?

    사용자가 앱을 탐색하고 앱에서 나왔다가 다시 돌아올 대 앱의 Activity 인스턴스는 생명 주기의 다양한 상태로 전환됩니다. Activity 클래스는 Activity 상태가 변경되었음을 알 수 있도록 하는 여러 가지 콜백 함수들을 제공합니다. 즉 시스템이 Activity를 생성, 중지 또는 재개하거나 Activity가 있는 프로세스를 파괴하고 있다는 것입니다.

     

    Activity 클래스가 제공하는 CallBack 함수들

    • onCreate()
    • onStart()
    • onResume()
    • onPause()
    • onStop()
    • onDestroy()

    Activity LifeCycle

    onCreate()

    시스템이 처음 활동을 생성할 때 실행되는 콜백 함수입니다.

    Activity 생성 시 Activity는 onCreate상태가 됩니다. 이 메서드에서는 Activity의 전체 생명주기 동안 한 번만 발생해야 하는 기본 응용프로그램 시작 논리를 수행합니다. 즉 Activity에 필요한 리소스 초기화, View들의 일반적인 상태 설정을 합니다.

    이전 상태가 저장되어 있을 경우, Bundle 객체를 참조하여 이전 상태로 복원이 가능합니다.

     

    onStart()

    이 콜백은 Activity가 화면에 보이기 바로 전에 호출되며 Activity가 포그라운드로 진입하여 상호작용이 될 수 있도록 준비할 때 액티비티를 사용자에게 표시하도록 합니다. 매우 빠르게 끝나고 onResume() 콜백으로 넘어갑니다.

    즉, Activity가 시작되기 전에 호출되는 함수, Activity가 멈춘 후 다시 시작되기 전에 호출되는 함수입니다.

     

    onResume()

    Activity가 onResume 상태가 되면 포그라운드로 이동한 다음 시스템이 onResum() 콜백을 호출합니다. 앱이 사용자와 상호작용하는 상태입니다. 앱은 앱에서 포커스를 잃는 일이 발생할 때까지 이 상태를 유지합니다.

     

    onPause()

    Activity가 더 이상 포그라운드에 있지 않음을 나타내는 콜백입니다.

    Activity가 완전히 가려지지 않고, 부분만 가려진 상태에서 호출되는 함수입니다. 즉, 일부분이 보이거나 투명 상태일 경우에 호출됩니다. 다른 Activity가 호출되기 전에 실행되기 때문에 onPause() 함수에서 시간이 많이 소요되는 작업이나 많은 일을 처리하면 다른 Activity가 호출되는 시간이 지연되기 때문에 많은 일을 처리하지 않도록 주의해야 합니다. 또한  이 콜백에서 시스템 리소스, GPS 또는 Activity가 일시 중지되고 사용자에게 필요하지 않은 동안 배터리 수명에 영향을 줄 수 있는 리소스를 해제할 수 있습니다.

     

    onStop()

    Activity가 사용자에게 더 이상 표시되지 않으면 onStop상태가 되고 시스템은 onStop() 콜백을 호출합니다.

    새로 시작된 Activity가 전체 화면을 덮을 때 발생합니다. Stopped 상태에서 Activity가 다시 시작되면 onRestart()를 호출합니다.

     

    onDestroy()

    Activity가 소멸되기 전에 호출됩니다. 즉, Activity가 finish() 중이거나 또는 시스템이 구성 변경으로 인해 활동을 일시적으로 파괴하고 있습니다. 여기서는 Activity가 완전히 스택에서 없어질 때 호출되는 콜백입니다.

     

    onReStart()

    onStop()이 호출된 이후에 다시 기존 Activity로 돌아오는 경우 호출되는 함수입니다.

    이 콜백이 호출된 이후에는 항상 onStart()가 호출됩니다.

     

    반응형
    참고

    https://developer.android.com/guide/components/activities/activity-lifecycle
    728x90
    반응형

    댓글

Designed by ZibroTistory.