ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] Activity, Fragment 생명주기
    여러가지 공부 2020. 11. 5. 16:45

    Activity 생명 주기

    사례 1 : Activity 열기 및 닫기

    1. Activity가 처음부터 시작되면 다음 세 가지 수명주기 콜백이 모두 순서대로 호출됩니다.

    • onCreate() 앱을 만듭니다.
    • onStart() 시작하고 화면에 표시되도록합니다.
    • onResume() 활동에 초점을 맞추고 사용자가 상호 작용할 수 있도록 준비합니다.

    onResume()메서드는 다시 시작할 항목이 없더라도 시작할 때 호출됩니다.

     

    2. 장치에서 뒤로 버튼을 누르면 onPause(), onStop(), onDestroy()이 순서대로 호출됩니다. 혹은 finish() 코드를 사용하거나 앱이 오랫동안 사용되지 않아 Android 시스템이 자체적으로 활동을 종료했을 경우도 해당된다.

    onDestroy()메소드 실행은 Activity가 완전히 종료되었고 가비지 수집 될 수 있음을 의미합니다. 가비지 수집은 더 이상 사용하지 않을 개체의 자동 정리를 의미합니다. onDestroy()를 호출 한 후 OS는 해당 리소스를 삭제할 수 있음을 인식하고 해당 메모리를 정리하기 시작합니다.

     

    3. 다시 앱을 실행시키면 Activity가 이전 단계에서 파괴되었기 때문에 안드로이드는 새로운 활동을 시작하고 onCreate(), onStart(), onResume()이 다시 호출된다.

    onCreate()및 onDestroy(): 인스턴스의 수명 동안 한 번만 실행됩니다. onCreate()는 처음 응용 프로그램을 초기화하고, onDestroy() 응용 프로그램에서 사용하는 리소스를 정리합니다. onCreate()는 중요한 단계입니다. 여기에서 모든 최초 초기화가 진행되고, 레이아웃을 팽창시켜 처음으로 레이아웃을 설정하고, 변수를 초기화합니다.

     

    사례 2 : Activity에서 멀어졌다가 다시 돌아 오기

    사용자가 Android 기반 기기와 상호 작용할 때, 앱간에 전환하고 바탕화면으로 나가서 새 앱을 시작하고 전화 통화와 같은 다른 활동으로 인한 중단을 처리합니다. 사용자가 해당 Activity에서 벗어날 때마다 Activity가 완전히 종료되지는 않습니다.

    • Activity가 더 이상 화면에 표시되지 않는 경우 이를 백그라운드에 배치라고 합니다 .
    • 사용자가 앱으로 돌아 오면 동일한 Activity가 다시 시작되고 다시 표시됩니다. 수명 주기의 이 부분을 앱의 가시적 수명주기 라고합니다 .

    앱이 백그라운드에 있을 때는 시스템 리소스와 배터리 수명을 보존하기 위해 활발하게 실행되지 않아야합니다. Activity 수명주기와 콜백을 사용 하여 앱이 백그라운드로 이동하는시기를 파악하여 진행중인 작업을 일시 중지 할 수 있습니다. 그런 다음 앱이 포 그라운드로 전환되면 작업을 다시 시작합니다.

     

    1. 앱을 실행했다가 홈 버튼을 눌러 홈 화면으로 돌아 가면 앱이 완전히 종료되지 않고 백그라운드로 전환됩니다. onPause()와 onStop()이 호출되지만 onDestroy()는 호출되지 않습니다. 

    • onPause() 응용 프로그램의 포커스가 사라집니다.
    • onStop() 앱이 더 이상 화면에 표시되지 않습니다.

    사용자가 앱으로 돌아올 수 있으므로 Android는 리소스를 유지합니다.

     

    2. 최근 화면을 사용하여 앱으로 돌아갑니다. onRestart(), onStart(), onResume()가 실행되지만 onCreate()메소드는 다시 호출되지 않습니다.

    중요한 점은 onStart()와 onStop()은 여러 번 호출되지만 onRestart()메소드는 onCreate()와 같이 동작한다는 것 입니다. onCreate()는 단 한 번만 실행되고, 그 다음에는 onRestart()가 실행됩니다.onRestart는 처음 액티비티가 액티비티가 처음으로 시작 되지 않는 경우에만 호출하는 코드입니다.

     

    사례 3 : Activity를 부분적으로 숨기기

    추후 업데이트 예정

     

    Fragment 생명 주기

    • onAttach(): 프래그먼트가 소유자 활동과 연관 될 때 호출됩니다.
    • onCreate(): onCreate()액티비티와 유사하게 , onCreate()초기 프래그먼트 생성 (레이아웃 제외)을 수행하기 위해 프래그먼트가 호출됩니다.
    • onCreateView(): 조각의 레이아웃을 확장하기 위해 호출됩니다.
    • onViewCreated(): onCreateView()가 반환 된 직후에 호출 되지만 저장된 상태가 뷰로 복원되기 전에 호출 됩니다.
    • onStart(): 조각이 보이면 호출됩니다. 활동의 onStart().
    • onResume(): 프래그먼트가 사용자 포커스를 얻을 때 호출됩니다. 활동의 onResume()
    • onPause(): 프래그먼트가 사용자 포커스를 잃을 때 호출됩니다. 활동의 onPause().
    • onStop(): 조각이 더 이상 화면에 표시되지 않을 때 호출됩니다. 활동의 onStop().
    • onDestroyView(): 해당 뷰와 관련된 리소스를 정리하기 위해 조각의 뷰가 더 이상 필요하지 않을 때 호출됩니다.

     

    자료 출처

    codelabs.developers.google.com/codelabs/kotlin-android-training-lifecycles-logging/index.html#4

     

    Android Kotlin Fundamentals: Lifecycles and logging  |  Google Codelabs

    In this codelab, you learn about the activity and fragment lifecycle.

    codelabs.developers.google.com

     

    반응형

    댓글

Written by 나도개발자.