본문 바로가기
IT개발/Android

[Android] 안드로이드 생명주기

by dootiger 2014. 11. 7.
반응형

안드로이드 생명주기

 

이번 포스팅에서는 안드로이드 생명주기에 대하여 설명하도록 하겠습니다. 안드로이드는 다음과 같은 생명주기를 갖습니다.

 




 

 

특정 엑티비티가 실행되면 onCreate() -> onCreate() -> onStart() -> onResume() -> ... 순서대로 실행이 되고 엑티비티는 동작하게 됩니다.

 

onCreate()는 Activity가 최초 생성할 때 호출됩니다. 초기화 설정을 하는 곳으로 보관된 상태의 Activity가 있으면, 그 상태를 저장중인 Bundle객체를 받아서 사용합니다. onCreate()가 호출된 후에는 onStart()가 호출되는데 이 때에는 강제종료가 불가능합니다.

 

onRestart()는 Activity가 정지된 후(onStop() 후) 다시 시작하기 전에 호출됩니다. onRestart()가 호출된 후에는 onStart()가 호출되는데 이 때에는 강제종료가 불가능합니다.

 

onStart()는 Activity가 사용자에게 보여지기 직전에 호출됩니다. Activity화면을 표시하는 매소드입니다. 이후, onResume()으로 이어집니다. 이 때에는 강제종료가 불가능합니다.

 

onResume()은 Activity가 사용자와 상호작용을 하기 직전에 호출됩니다. 스택의 최상위에 위치하여 Activity를 활성화시키는데, 활성화 상태에 있다가 다른 Activity가 활성화되면 onResume()이 실행됩니다. 실행중 다른 Activity가 활성화되었을 때, 기존 Activity가 화면에 보이면 onPause()에서 처리하고 보이지 않으면 onStop()으로 이어져 처리하게 됩니다. 이 때에도 강제종료가 불가능합니다.

 

onPause()는 다른 Activity가 활성화 되었을 때 호출됩니다. 다시 Activity가 활성화되면 onResume()이 호출되어 Activity를 활성화 하지만, onPause()상태에 있다가 메모리가 부족하면 Process Kill을 하여 메모리를 반환하게 됩니다. onPause()는 Activity화면이 조금이라도 남아있을 때 진행되지만 다른 Activity가 기존 Activity를 가려서 보이지 않게 되면 onStop()을 호출합니다. 이 때에는 강제종료가 가능한데 이 때에는 Process Kill로 종료하는 것입니다.

 

onStop()은 다른 Activity가 Activity를 완전히 가려서 더 이상 보이지 않았을 때 호출됩니다. Activity가 다시 시작되면 onRestart()를 호출하여 onStart() -> onResume()을 통해 활성화됩니다. 이 때에는 강제종료가 가능한데 Process Kill을 통해서 하는 방법과 onDestroy()를 호출하여 종료하는 방법 2가지로나뉘게 됩니다.

 

onDestroy()는 Activity가 삭제되지 직전에 호출됩니다. Activity가 받는 마지막 호출 매소드로 finish()를 호출하여 사용하게 됩니다. 호출된 후에는 Activity가 종료됩니다.





반응형