안드로이드 앱은 task의 집합으로 안드로이드에서는 이 task를 activity라 부릅니다.
다시 말하면 하나의 activity는 앱이 수행하는 고유한 하나의 task라는 말이죠.

intent를 통해 현재 activity에서 다른 activity로 전환할 수 있습니다.
그리고 처음 화면에 띄워질 main activity는 AndroidManifest.xml 파일에서 결정합니다.


Activity의 Life cycle

  안드로이드 앱에서는 한 시점에 단 하나의 응용 프로그램 activity만이 foreground에서 실행됩니다. 우리가 자주 쓰는 윈도우와는 조금 다르죠.
  Activity callback 메서드를 이용해서 앱의 상태 및 자원을 관리합니다. 즉 한 activity의 Life cycle 동안 여러 상태를 거치게 되는데 그 때마다 적절한 callback 메서드가 호출되는 것입니다.



Activity callback 메서드
   
 onCreate(Bundle)
하나의 activity가 처음 시작되면 호출되며, setContentView() 메서드 호출과 같은 데이바인딩과 초기 설정 작업에 관여합니다.

 onStart()
activity가 사용자에게 곧 보여질 것을 나타냅니다.

 onResume() 
한 activity가 스택의 제일 상위에 놓이고 foreground process가 되면 호출되는 메서드로 애니매이션이나 음악 같은 activity의 실행에 필요한 자원들을 준비하기에 적합한 메서드 입니다.

 onPause()
다른 activity가 스택의 최상위를 차지하면 현재 activity는 background로 밀려나고 이때 현재 activity의 onPause() 메서드가 호출됩니다. activity가 background에 있는 동안 필요하지 않은 자원을 해제할 마지막 기회로 onPause()메서드에서 자원을 많이 해제할 수록 activity가 background에서 죽을(kill) 가능성이 줄어듭니다.

 onStop()
activity가 사용자에서 더 이상 보여지지 않을 때 호출 되며 메모리가 얼마 남지 않았다면 호출되지 않고 시스템이 프로세스를 종료할 수 있습니다.

 onRestart() 
activity가 정지 상태에서 다시 디스플레이될 때 호출됩니다.

 onSaveInstanceState(Bundle)
Activity가 죽어도 스택에서 제거되지는 않고 activity 객체의 상태가 하나의 Bundle객체에 저장됩니다. 예를 들면 텍스트 필드 내의 커서 위치에 대한 정보 처럼 activity의 필수 적이지 않은 상태를 Bundle객체에 저장합니다. 이 메서드는 디폴트 구현 값이 모든 사용자 인터페이스 제어 상태를 자동으로 저장하므로 구지 재정의할 필요는 없습니다.

 onDestroy()
activity의 lifecycle이 끝나거나 자원 부족으로 안드로이드가 activity를 죽일 때 호출 됩니다. 메모리가 얼마 남지 않았다면 호출되지 않고 시스템이 프로세스를 종료할 수 있습니다.

 onRestoreInstanceState(Bundle)
onSaveInstanceState() 메서드가 미리 저장해 둔 상태로부터 activity가 다시 초기화될 때 호출 됩니다.


'Android' 카테고리의 다른 글

Activity와 Task  (1) 2013.10.26
Android 인터페이스  (0) 2013.10.26
Android application 구조와 Life cycle  (0) 2013.10.26
Android Application 구성요소(Component)  (0) 2013.10.26
Dalvik VM (Dalvik Virtual Machine)  (0) 2013.10.26
안드로이드? (Android)  (0) 2013.10.26
Posted by 흑 기사
TAG

댓글을 달아 주세요