안드로이드 액티비티의 라이프 사이클에 관한 메소드를 알려주세요.

조회수 3683회

안드로이드 액티비티의 라이프 사이클은 어떻게되나요? onCreate(), onStart(), onResume()들이 다 비슷한 메소드같은데 이런 메소드들의 역할을 알려주세요.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    액티비티의 라이프사이클. 1

    ① onCreate()

    • Activity가 생성되어 시작될 때 처음으로 호출되는 메소드
    • Activity의 리소스 초기화, 레이아웃 및 데이터 바인딩 등의 초기 설정 작업 수행
    • onCreate() 메소드에서는 Bundle 객체를 매개변수로 받아오는데, 새로 시작된 Activity의 경우 null 값이 전달됨.
    • 그러나 해당 Activity가 멈춤이나 정지상태에서 메모리 상의 이유로 강제로 종료되었다가 다시 시작하는 경우라면, 이 Bundle 객체에는 해당 Activity의 이전 상태 정보가 들어있을 것이며, 이 정보를 이용해서 이전 상태로 복원할 수 있다.

    ② onStart()

    • Activity가 사용자에게 화면을 보여줄 준비가 되었을 때 호출되는 메소드
    • 주로 사용자에게 Activity를 보여주기 위해 필요한 리소스들을 설정함.

    ③ onResume()

    • Activity가 Activity Stack의 최상위에 놓여서 사용자에게 화면을 보여주고 사용자의 입력을 처리할 수 있을 때 호출되는 메소드
    • 오디오나 동영상, 애니메이션 등과 같이 화면 맨 앞에서 실행되고 있을 때만 필요한 리소스들을 설정하기 좋은 메소드

    ④ onPause()

    • Activity가 사용자 초점을 잃었을 때 호출되는 메소드
    • onResume()에 대응되는 한 쌍의 메소드
    • onResume() 메소드가 호출된 후 onPause() 메소드가 호출되기 까지를 포어그라운드 라이프사이클(Foreground Lifecycle)이라고 부른다.
    • onResume() 메소드에서 설정했던 리소스들은 반드시 onPause() 메소드에서 해제해야 한다.

    예) onResume() 메소드에서 재생을 시작한 오디오나 동영상, 애니메이션을 중단해야 하고, DB와 같은 리소스들도 해제해야 함.

    ⑤ onStop()

    • 다른 Activity가 Activity Stack의 최상위에 놓이면서, 현재 Activity는 더 이상 화면에 보이질 않게 될 때 호출되는 메소드
    • onStart() 메소드에 대응되는 한 쌍의 메소드이며, onStart() 메소드가 호출된 후 onStop() 메소드가 호출되기까지를 비저블 라이플사이클(Visible Lifecycle)이라고 부른다.
    • onStart() 메소드에서 설정했던 리소스들(사용자에게 Activity를 보여주기 위해 설정한 리소스들)은 반드시 onStop() 메소드에서 해제해야 한다.

    ⑥ onRestart()

    • Activity가 더 이상 화면에 보이지 않게 되었다가 다시 화면을 보여줘야 할 때 호출되는 메소드
    • onStart()가 호출되기 전에 필요한 설정 작업을 수행함.

    ⑦ onDestroy()

    • Activity가 파괴되기 전에 호출되는 메소드
    • onDestroy() 메소드가 호출되는 경우 > Activity가 스스로 종료하려고 하는 경우 > 메모리 부족으로 안드로이드 플랫폼이 Activity를 강제로 죽이려 하는 경우

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)