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


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

  • 2016년 01월 26일에 작성됨

조회수 316


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를 강제로 죽이려 하는 경우
  • 2016년 01월 26일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close