728x90
반응형
지난 포스팅에서 안드로이드 어플리케이션을 구성하는 4대 컴포넌트에 대해서 살짝 알아보았는데요. 역시 중요한 녀석들이기 때문에 살짝 맛만 본 것으로는 부족한 것 같아 각 컴포넌트를 조금은 더 자세히 알아보도록 할께요.
여기서는 바로 액티비티에 대해서 알아보도록 하겠습니다.
- UI를 구성하는 기본단위입니다. 한 화면을 보여주는 역할을 합니다.
- 자체적으로 화면에 출력하는 기능이 없어서 뷰나 뷰그룹을 사용하여 화면에 출력시킵니다.
- 다양한 컨트롤들을 활용하여 뷰와 뷰그룹에 배치시키고 그것을 출력시키고 사용자가 일으키는 이벤트를 처리 합니다.
- 사용자에게 보여지는 화면이 있는 어플리케이션이라면 그것은 액티비티를 한개 이상 가지고 있는 것입니다.(액티비티가 없으면 화면에 출력을 안하니 당연한거네요)
- 액티비티의 생명주기는 3가지 상태로 나눠집니다. - 활성화 또는 실행중인 상태, 멈춤 상태, 정지 상태
- AndroidManifest.xml에 액티비티를 지정해둬야 합니다. 혹시 지정해두지 않는다면 해당 액티비티로 이동하는 순간, 넉다운되는 어플리케이션의 최후를 볼 수 있을 것입니다 ^^;;
그럼 액티비티의 생명주기에 대해서 살짝 더 알아보겠습니다.
활성화(Active) 또는 실핼중인(Running) 상태
- 액티비티가 포그라운드(foreground)에서 실행되고 있는 상태
- 액티비티의 GUI(Graphical user interface) 화면을 사용자가 사용하고 있는 상태 또는 포커스를 가지고 있는 상태
멈춤(pause) 상태
- 액티비티가 다른 액티비티에 가렸지만 가린 액티비티가 투명이거나 일부가 가렸고 포커스를 잃은 상태
- 이 상태에서는 우선 모든 정보를 유지하고 있다.
- 프레임워크의 윈도우매니저에 붙어서 존속을 한다.
- 메모리 부족 현상이 있을시에는 시스템에 의해 강제 종료가 된다.
정지(Stop) 상태
- 완벽하게 다른 액티비티에 가려진 상태
- 모든 상태와 정보는 멈춤 상태와 같이 유지가 된다.
- 메모리 부족시 강제 종료 된다.
그냥 봐서는 멈춤 상태와 정지 상태 별로 다른 것 같지 않네요. 완벽하게 가려서 안보이는 액티비티와 포커스만 잃은 액티비티의 상태 차이 정확하게 저는 모르겠네요. 어짜피 메모리 부족하면 다 죽여버리는데. 이건 좀 더 알아봐야될 것 같습니다. ㅎㅎㅎ
뭐 타 문서들을 보면 메모리 부족시 Kill해버리는 순서가 정지상태의 액티비티를 먼저 한다고는 합니다. ㅎㅎㅎ
그리고 상태 변화에 따라서 호출되는 메서드들이 있습니다. 우선 아래 그림을 보시고 그 다음 설명을 하도록 할께요.
그럼 위 그림에 나오는 메소드들을 확인해 보도록 하겠습니다.
- onCreate()
액티비티가 처음 생성될 때와 화면이 회전되어 변경될 때 기본으로 실행 되는 메소드 입니다. 레이아웃배치와 변수 선언등 초기 작업이 진행 되는 메소드 입니다. 위에서 보는 것과 같이 메소드 처리 완료 후 onStart() 메소드를 호출합니다.
- onStart()
onCreate()나 onRestart() 메소드로 시작된 후 처음으로 호출되는 단계입니다. 화면 생성이 완료되고 사용자 입력을 받기 직전의 단게입니다. 이 단계가 완료 후에는 onResume() 메소드가 실행됩니다.
- onResume()
이 메소드가 실행되고 나면 액티비티의 모든 준비가 완료된 상태입니다. 사용자와 상호작용이 가능해 지죠. 또한 onPause()상태에서 돌아왔을때 처음 시작되는 메소드 이기도 합니다.
- onPause()
이 메소드는 다른 액티비티에 포커스를 넘겨주고 백그라운드로 넘어 갔을 때 실행되는 메소드 입니다. 생명주기 중 멈춤상태에 해당됩니다. 혹시 다시 액티비티가 포커스를 받게 되면 onResume()이 실행 되게 됩니다.
- onStop()
해당 액티비티가 완전히 포커스를 잃고 화면에 보이지 않을 때 실행되는 메소드 입니다. 혹시 다시 액티비티가 실행될 때는 onRestart() -> onStart() -> onResume() 순으로 호출이 되어집니다.
- onDestroy()
finish(), finishActivity() 같은 정상적인 종료시에 호출이 됩니다. 이때 onCreate에서 호출한 자원들을 반납을 하게 됩니다.
- onRestart()
onStop() 상태에서 액티비티가 다시 활성화 되어질 때 호출되는 메소드입니다.
액티비티의 기본적인 내용과 생명주기에 대해서 대충 알아보았습니다. 뭐 자세한 설명은 아니라서 100% 알기도 힘들뿐 아니라 액티비티라는 것 자체가 너무나 방대한 내용을 가지고 있기 때문에 다 알아보기 힘들더군요. 우선은 이런 기본적인 것 부터 하나하나 챙겨 공부하면 나중에는 좀 더 많은 내용을 자동적으로 알 수 있지 않을까 생각을 조심스레 해봅니다.
그럼 이 포스팅은 여기까지인 걸로~^ㅡ^
p.s 어찌 뒤로 갈수록 내용이 빈약해지는 듯 하네요 ㅠㅠ
자료 제공 : 안드로이드 프로그래밍 정복, http://blog.naver.com/PostView.nhn?blogId=rutee9&logNo=130141836666, http://holls2000.tistory.com/entry/%EC%95%A1%ED%8B%B0%EB%B9%84%ED%8B%B0-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0-Activity-LifeCycle
728x90
반응형
'Android' 카테고리의 다른 글
서머자동룬광부앱 - 분석 (0) | 2020.04.24 |
---|---|
안드로이드 4대 컴포넌트 (0) | 2012.07.16 |
Eclipse 실행시 Failed to create the Java Virtual Machine 메시지 발생 (0) | 2010.10.14 |
android 프로젝트 분석... (0) | 2010.10.12 |
Android의 첫 시작 Hello world (0) | 2010.10.10 |