반응형

혼자 Notion에 정리하다가 중요한 것 같아 정리했던 내용 블로그에 포스팅합니다.

 

 제가 지금부터 설명드릴 것은 위 그림 한장으로 모두 설명이 됩니다. 제가 쓴 글이 이해가 안되신다면 위 그림을 참고하시면 좋을 것 같습니다.

 

 Android Lifecycle은 총 일곱 개의 콜백으로 되어있습니다.

 onCreate() -> onStart() -> onResume() -> | Activity Running | -> onPause() -> onStop() -> onDestroy()

                                                                                                   -> onRestart() -> onStart()...

 

onCreate() : 시스템이 활동을 생성할 때 이 콜백을 구현해야 합니다. 이 콜백에서 setContentView()를 호출하여 레이아웃을 정의해야 합니다.

onCreate()가 완료되면 다음 콜백은 항상 onStart()입니다..

onStart() : onCreate()가 끝나면 activity는 Started state로 변경됩니다. 또한 사용자들에게 activity가 보여지는 상황이 됩니다. 이 콜백은 foreground로 나와 사용자와 interactive한 상황이 되기 직전까지의 준비과정입니다.

onResume() : 시스템은 onResume()을 사용자와 상호작용하기 직전에 호출됩니다. onResume()은 Activity Stack 맨 위에 있으며 모든 사용자의 입력을 확인합니다. 앱의 핵심 기능은 대부분 onResume() 메서드로 구현됩니다.

onPause() 콜백은 항상 onResume() 뒤에 옵니다.

onPause() : 말 그대로 Pause 상태가 되는 상황입니다. 예를 들어 유저가 뒤로가기 버튼을 누른다거나 최근 탭을 누른 상황일 때 onPause()상태가 됩니다. 이 상태는 Activity가 부분적으로 보이나, 사용자가 나가려고 할 때 발생합니다. onPause() 뒤에는 onStop() 또는 onResume()이 옵니다. 데이터를 저장하거나, 네트워크 통신을 불러올 때 대기를 위해 onPause()를 사용해서는 안됩니다.

onStop() : onStop()은 사용자에게 아예 보이지 않는 상황이 되었을 때입니다. 이것은 activity가 아예 사라지거나 새로운 activity가 보여질 때 발생합니다.

onStop() 콜백 다음에는 사용자와 다시 상호작용하기 위해 호출되는 onRestart()나, 아예 종료되는 상황이 되는 onDestroy()가 옵니다.

onRestart() : onStop() 상태에 있던 activity가 다시 호출될 때 onStart() 상태가 됩니다. onRestart()는 onStop()이었던 상태의 activity를 다시 불러옵니다.

onDestroy() : Activity가 종료되기 전에 항상 onDestroy()가 호출됩니다. 이 호출은 activity가 받는 마지막 호출입니다. onDestroy()는 일반적으로 acitivity나 acitivity 프로세스가 제거될 때 activity의 모든 resource를 해제하도록 구현합니다.

반응형

+ Recent posts