안드로이드 컴포넌트 생명주기
1. Activity 생명주기
- 그림 이미지 출처
- onCrete()
- 최초로 Activity를 실행하면, 처음으로 호출되는 메서드이다.
- 초기화 관련 작업을 주로 한다.
- onStart()
- 최초로 Activity를 실행하면,
onCreate()
다음으로 호출되는 메서드이다. onStop()
->onRestart()
다음으로 호출되는 함수이기도 하다.- 이 시점부터는 사용자가 Activity를 볼 수 있다.
- onResume()
- 최초로 Activity를 실행하면,
onStart()
다음으로 호출되는 메서드이다. onPause()
다음으로 호출되는 함수이기도 하다.- 이 시점부터는 Activity가 활성화 된 상태(실행중인 상태)로 본다.
- onPause()
- 만약
onResume()
가 호출된 이후에(Activity가 활성화 된 이후에) 다른 Activity가 최상단에서 보여지는(포커스를 잃은) 경우 호출되는 메서드이다. - 만약
onPause()
가 호출된 이후에 (다른 Activity가 최상단에서 보여진 이후에) 다시 기존 Activity로 돌아오는 경우onResume()
가 호출된다. - 만약 다른 앱이 메모리를 필요로 할 경우 앱 프로세스가 종료된 수 있다.
- onStop()
- 만약
onResume()
가 호출된 이후에(Activity가 활성화 된 이후에) 다른 Activity가 최상단에서 보여지는(포커스를 잃은) 경우 + Activity가 완전히 보이지 않는 경우 호출되는 메서드이다. - 만약
onStop()
이 호출된 이후에(다른 Activity가 최상단에서 보여진 이후에) 다시 기존 Activity로 돌아오는 경우onStart()
가 호출된다. - 사용자에 의하거나(ex:
onBackPressed()
호출), 시스템에 의해(ex: 자원부족) Activity가 완전히 종료되면onDestroy()
가 호출된다. - 만약 다른 앱이 메모리를 필요로 할 경우 앱프로세스가 종료될 수 있다.
- onDestroy()
- Acitivy가 사용자에 의하거나 시스템에 의해 완전히 종료되는 경우 호출되는 메서드이다.
1-1. 사용자에 의해 종료되는 경우는
onBackPressend()
호출,finish()
등의 경우가 있다. (onBackPressed() 호출 시, 기존 실행된 액티비티가onResume()
까지 호출된 후onDestroy()
가 호출된다) 1-2. 시스템에 의해 종료되는 경우는 대표적으로 자원부족 문제를 해결하기 위한(메모리 확보를 위한)경우가 있다.
- onRestart()
onStop()
이 호출된 이후에(다른 Activity가 최상단에서 보여진 이후에) 다시 기존 Activity로 돌아오는 경우 호출되는 메서드이다.onRestart()
가 호출된 이후 이어서onStart()
가 호출된다.
Comments