ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Activity lifecycle
    Android 2020. 9. 2. 18:40
    반응형

    생명 주기 종류

    • onCreate()
      • Activity를 생성할때 가장 먼저 실행되는 것 이다.
      • 전체 생명 주기 동안 한 번만 발생 해야 하는 로직 들을 수행한다. ex) 초기화 처리, 뷰생성
      • 완료되면 onStart()을 호출한다.
    • onStart()
      • Activity가 사용자에게 보여진다.
      • Activity를 foreground에 보내 상호작용을 준비하는 단계 이므로 사용자와 상호작용은 불가능 하다.
      • 완료되면 onResume()을 호출한다.
    • onResume()
      • 사용자와 상호작용을 시작합니다.
      • App에서 focus가 떠날 때까지 머무릅니다. ex) 다른 Activity로 이동, 화면 꺼짐 등
      • 실행해야 하는 모든 기능을 활성화 할 수 있다.
      • 방해되는 이벤트 발생 시 일시 정지 상태에 들어가고 onPause()을 호출합니다.
    • onPause()
      • 사용자가 Activity를 떠난다는 첫번째 신호입니다.( Activity가 항상 소멸된다는 것을 뜻하진 않습니다.)
      • 일부 이벤트가 방해하거나 멀티 윈도우 모드, 새로운 반투명 Activity가 열릴 때 호출 됩니다.
      • foreground에 있지 않을 때 실행할 필요 없는 기능 들을 정지 시킬 수 있습니다.
      • Activity가 완전히 보이지 않게 되면 onStop() 호출, 다시 시작되면 onResume()을 호출 합니다.
    • onStop()
      • Activity가 더이상 표시되지 않으면 호출됩니다.
      • 필요하지 않은 리소스를 해제하거나 조정합니다.
      • Activity가 다시 시작되면 onRestart()를 호출, 실행을 종료하면 onDestroy()를 호출합니다.
    • onDestroy()
      • Activity가 소멸되기 전에 호출됩니다.
        • (Activity를 완전히 닫거나 Activity에서 **finish()**가 호출되어) Activity가 종료되는 경우
        • 기기 회전 또는 멀티 윈도우 모드 으로 인해 시스템이 일시적으로 Activity를 소멸시키는 경우
      • ViewModel을 사용 하는 경우 **onCleared()**를 호출하여 모든 데이터를 정리 해야 합니다.

    메서드 호출 순서

    • 시작시 : onCreate -> onStart -> onResume
    • 화면 회전시 : onPause -> onStop -> onDestroy -> onCreate -> onStart -> onResume
    • 다른 Activity 실행 시 / 화면 OFF시 /홈 키 : onPause -> onStop
    • Back 키로 Activity 종료 : onPause -> onStop -> onDestory
    • Back 키로 기존 Activity에 돌아올 때/홈 키로 나갔다가 돌아올 때 : onRestart -> onStart -> onResume
    • 다이얼로그 Activity나 투명 Activity가 위에 뜰 때 : onPause

    https://developer.android.com/guide/components/activities/activity-lifecycle?hl=eng

    반응형

    'Android' 카테고리의 다른 글

    View Lifecycle  (0) 2020.09.02
    Fragment lifecycle  (0) 2020.09.02
    Architecture Pattern-MVVM  (0) 2020.09.02
    Architecture Pattern-MVP  (0) 2020.09.02
    Architecture Pattern-MVC  (0) 2020.09.02

    댓글

Designed by Tistory.