*과거 포스팅한 글을 옮겨왔습니다.
Activity 수명 주기를 간략하게 표현한 그림.
- 안드로이드 Activity의 수명주기
최초, onCreate 메소드가 호출되어 레이아웃을 구성합니다. 그리고 해당 activity가 화면에 출력되기 직전 onStart 메소드가 호출됩니다. 그리고 activity가 화면에 출력되고 포커스가 되었을 때 onResume메소드가 호출됩니다. 이후 activity는 실행상태가 되어 사용자와 상호작용이 가능해집니다.
포커스를 잃었을 때(화면에 다른 activity가 출력되었으나 종료가 되지 않았을 때) onPaues메소드가 호출되고 일시정지상태가 됩니다. 이후 다시 포커스되면 onResume메소드가 호출됩니다. 반면, 다른 activity에 완전히 가려져 화면에 출력되지 않는다면 onStop메서드가 호출되고 정지상태가 됩니다. 여기서, 다시 포커스를 얻는다면 화면이 출력되기 직전 onRestart - onStart메소드가 차례대로 호출됩니다. 그 외에는 finish메소드가 실행되어 액티비티가 종료되기 전 onDestory메소드가 실행됩니다.
스마트폰을 사용하다 보면, 가끔 activity가 종료가된것도 아닌데 초기화가 되어있을 때가 있습니다. 그 때는 시스템이 메모리가 부족하다고 판단해 onCreate메소드부터 해당 activity를 구동한 것 입니다. 이때 onStop 및 onResume 메소드는 생략됩니다. 개발시에 위 상황처럼 갑자기 activity가 초기화 되는 상황을 대비할 수 있는 메소드가 있습니다. onSaveInstanceState 및 onRestoreInstanceState 메소드를 이용해 상태를 저장하고 복원시의 작업을 정의할 수 있습니다.
* Activity의 상태
activity는 크게 세가지 상태로 구분되는데, 실행 / 일지 중지 / 정지 상태입니다.
실행 상태는 activity 스택의 최상위로써, 화면에 출력중인 상태입니다.
일시중지 상태는 사용자에게 보이기는 하지만, 다른 activity에 의해 가려져 있는 상태입니다.
중지 상태는 다른 activity에 완전히 가려져 보이지 않는 상태입니다.
'IDE & Framework > Android' 카테고리의 다른 글
비동기(Async)통신과 동기(Sync)통신의 차이 feat. retrofit (0) | 2021.05.08 |
---|---|
margin과 padding 차이 (0) | 2021.05.08 |
Manifest 파일이란? (0) | 2021.05.07 |
Android의 4대 컴포넌트란? (0) | 2021.05.07 |
[(가제)강습스케쥴러] application preview (0) | 2021.04.13 |