반응형
Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Do Something IT

안드로이드 Application Lifecycle 본문

Android

안드로이드 Application Lifecycle

아낙시만더 2010. 7. 8. 12:40
반응형

출처 : http://www.cyworld.com/kkjw1801/3690842

프로그래밍을 하면서 가장 필요한 지식중에 엑티비티 라이프 사이클을 이해하는게 가장 중요하다고 느껴집니다. 그래서 책에 있는 지식과 여러 참고 자료들을 활용해서 까먹더라도 다시 볼 수 있게 해놔야 겠다.
 


  그림) Activity 라이프사이클

 

 

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

 

l  OnCreate()

액티비티가 생성될 때 호출된다. 설정 작업은 여기서 완료되고 또한 이전에 저장된 번들형태의 데이터에 접근할 수도 있다.

  

l  OnRestart()

액티비티가 재시작되는 과정에서 호출된다. 아직 스택에 남아있을 때는 새로 시작되는 것이 아니라 멈추었던 실행이 재개되는 것이다.

 

l  OnStart()

Activity가 화면에 보이는 단계에서 호출된다.

 

l  OnResume()

Activity를 사용자가 사용할 때 호출된다. (이 메서드는 액티비티가 시작하거나 재시작할 때 모두 호출된다)

 

l  OnPause()

액티비티가 중단되거나 CPI와 다른 자원들을 요청할 때 호출된다. 이 메서드는 상태정보를 반드시 저장해야 하기 때문에 액티비티는 중단되었을 때와 동일한 상태에서 다시 시작될 수 있다.

 

l  OnStop()

액티비티를 중단시키고 화면에서 보이지 않는 상태로 바꾸기 위해 호출된다.

 

l  OnDestroy()

액티비티가 시스템 메모리에서 완전히 제거될 때 호출된다. OnFinish() 메서드가 직접 호출 되거나 시스템이 리소스들을 확복하기 위해 액티비티를 중단할 때 호출된다.

 

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

 

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

 

  onPause는 상태관련 정보를 삭제하거나 저장할 수 있는 마지막 기회일 수 있다는 것은 중요한 사항이기에 기억해 두길 바란다.

 

  액티비티 클래스들을 실행하고 있는 프로세스들은 onPause 메서드의 작업이 완전히 끝나기 전까지는 플랫폼에 의해서 강제로 종료되지 않는다. 이것은 기본적으로 시스템이 항상 라이프사이클 메서드들을 전부 수행시키려 하지만 리소스들이 제어할 수 없는 상태라면 알람 소리와 함께 액티비티를 수행하는 프로세스들은 onPause 메서드 실행에 상관없이 언제든지 강제로 종료될 수 있다.

 

  onPause 메서드는 저장되는 시점의 상태를 저장해야 한다. 저장되는 상태 값이 특정 어플리케이션과 관련된 내용이거나 시스템 전체 공유 데이터면 onPause는 항상 모든 상태 값들을 갖고 있어야 한다.

반응형

'Android' 카테고리의 다른 글

Android 개발 넥서스원에서 테스트하기  (0) 2010.08.19
안드로이드 DB 컨트롤  (3) 2010.07.18
[Android] Adapter  (0) 2010.06.25
[번역] 안드로이드 Drawable Mutations  (0) 2010.06.24
움직이는 네모  (0) 2010.06.21
Comments