관리 메뉴

드럼치는 프로그래머

[안드로이드] Activity 라이프사이클 본문

★─Programing/☆─Android

[안드로이드] Activity 라이프사이클

드럼치는한동이 2009. 11. 27. 13:11

안드로이드의 Acitivity MIDlet과 유사하게 라이프사이클(Life Cycle) 관리를 위해 다음과 같이 8개의 메소드를 제공한다.

 

 onCreate           onStart                onRestart            onResume

 onFreeze          onPause             onStop                onDestroy

 


 
그림) Activity 라이프사이클

 

 

Activity 라이프사이클을 구성하는 각각의 메소드들을 살펴보자. 라이프사이클에 히스토리 스택이 자주 언급되므로 생성된 모든 Activity의 히스토리 스택은 유지된다는 사실을 기억해야 한다.

 

l  OnCreate()

Activity가 생성될 때 처음으로 호출되는 메소드인데, 여기에서 주로 리소스를 초기화한다.

 

l  OnStart()

Activity가 사용자에게 보여줄 준비가 되었을 때 호출된다.

 

l  OnResume()

Activity 스택의 맨 위에 있어서 Activityrk 사용자에게 보여지고 사용자의 입력을 처리할 수 있을 때 호출된다.

 

l  OnPause()

포커스를 잃고 이전의 Activity Resume되기 전에 호출된다. OnPause()에서는 데이터의 저장, 애니메이션의 중지, CPU를 소비하는 작업 중단과 같은 일들을 수행한다.

 

l  OnStop()

더 이상 Activity가 스택의 최상위에 있지 않으므로 Activity가 사용자에게 보여지지 않는다.

 

l  OnDestroy()

OnDestroy() 메소드가 호출되면 시스템에 Activity가 존재하지 않는다.

 

그림) 에서 Activityrk 시작되고 실행중일 때 다른 Activity가 시작되면 그때까지 실행되던 Activity pause 상태로 전환되어야 한다. Pause 상태로 존재하다가 다른 애플리케이션에서 메모리를 많이 요구하면 pause 상태에 있던 Activity는 죽을(killed) 수도 있다.

 

 만약 pause 상태에 있던 Activity를 사용자가 선택해서 다시 포그라운드로 되돌아가면 resume 상태가 된다. pause 상태에 있던 Activity가 더 이상 보이지 않으면 stop 상태로 전환된다. stop 상태에 있던 Activity가 다시 포그라운드로 되면 restart에 의해 start 상태로 돌아간다. 물론 stop 상태에 있던 Activity도 다른 애플리케이션이 메모리를 요구할 때 죽을 수도 있고, destroy 상태로 전환될 수 있다. 이와 같이 한 Activity가 시작되다가 멈추고, 다시 시작되다가 결국은 죽는 과정이 마치 라이프 사이클과 같다고해서 ‘Activity 라이플사이클이라고 한다. 

 

 

Comments