안드로이드 액티비티의 라이프 사이클에 관한 메소드를 알려주세요.
조회수 3683회
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를 강제로 죽이려 하는 경우
댓글 입력