http://developer.android.com/reference/android/app/Activity.html

- Activity가 화면 전면에 있으면(activity stack의 최상위), active/running.
- Activity가 포커스를 잃었으나 여전히 보이면(풀사이즈가 아닌 창이 뜨거나, 반투명 창이 뜨면), paused.
   모든 상태값, 멤버정보는 유지됨.
   Paused Activity는 살아있으나 메모리가 극단적으로 부족하면 시스템이 프로세스를 죽일 수 있음.
- Activity가 다른 activity에 의해 완전히 가려지면 stopped.
   모든 상태값, 멤버정보는 유지되나, 더이상 사용자에게 보이지 않으며, 메모리가 필요하면 시스템이 종종 프로세스를 죽일 수 있음.
- Activity가 paused 또는 stopped 일 경우, 시스템의 종료 요청 또는 그냥 프로세스를 죽이는 방식으로 메모리에서 삭제될 수 있음.
   이 경우 사용자에게 다시 보여지려면 완전히 다시 시작해서 기존의 상태를 복원해야 함.

- entire lifetime은 onCreate(Bundle) ~ onDestroy()
   global을 onCreate()에서 설정하고, onDestroy()에서 리소스를 해제.
   ex) 쓰레드를 onCreate()에서 만들고, onDestroy()에서 정지
- visible lifetime은 onStart() ~ onStop()
   리소스를 유지하고 사용자에게 activity를 보여줘야함.
   ex) UI에 영향을 주는 변화를 모니터하기 위해 BroadcastReceiver를 onStart()에서 등록하고 onStop()에서 해제.
   onStart()와 onStop()은 여러번 불려질 수 있음.
- foreground lifetime은 onResume() ~ onPause()
   이 사이에 activity는 다른 모든 activity보다 상위에 있고 사용자와 상호작용함.
   activity는 빈번하게 resume/pause됨.
   ex) device가 sleep모드로 되는 때, activity 결과가 전달될 때, 새 intent가 전달될 때 등. 따라서 이 메소드의 코드는 가벼워야 함.

'프로그래밍 > Android' 카테고리의 다른 글

[Hello,Android] 익명의 내부 클래스  (0) 2010.08.17
[Hello,Android] WebView 사용 시  (1) 2010.08.16
[Hello,Android] 기본팁  (0) 2010.06.08
[설치] Hello, World!  (0) 2010.05.11
[설치] Android 개발 환경 설정하기  (0) 2010.04.21