Activity lifecycle
Activity lifecycle
Activity Lifecycle
onCreate()
- 액티비티가 만들어지고 나서 최초에 실행될 때 호출된다. (한 번만 호출된다.)
- 액티비티에 필요한 리소스 초기화, View들의 일반적인 상태 설정.
- 이전 상태가 저장되어 있을 경우, 번들 객체를 참조하여 이전 상태로 복원이 가능하다.
- 다음으로 onStart()가 호출된다.
onStart()
- 액티비티가 화면에 보이기 바로 전에 호출된다.
- 매우 빠르게 끝나고 onResume() 단계로 넘어간다.
- 액티비티가 시작되기 전에 호출되는 함수, 액티비티가 멈춘 후 다시 시작되기 전에 호출되는 함수.
onResume()
- 액티비티가 사용자와 상호작용하기 바로 직전에 호출되는 함수.
- 이 함수가 호출되고 나서 바로 액티비티가 사용자에게 보인다.
- 액티비티가 화면에 보인다.
- 사용자에게 Focus를 잡은 상태이다.
onRestart()
- 액티비티가 중지된(Stopped) 이후에 호출되는 메소드로 다시 시작되기 바로 전에 호출된다.
- 액티비티가 멈춰 있다가 다시 호출될 때 불리는 함수.
다른 액티비티가 호출되는 경우
onPause()
- 다른 액티비티가 위에 올라와서 Focus를 잃었을 때 호출된다.
- 액티비티가 완전히 가려지지 않고, 부분만 가려진 상태에서 호출되는 함수이다. 즉, 일부분이 보이거나 투명상태일 경우에 호출된다.
- 다른 액티비티가 호출되기 전에 실행되기 때문에 onPause() 함수에서 시간이 많이 소요되는 작업이나 많은 일을 처리하면 다른 액티비티가 호출되는 시간이 지연되기 때문에 많은 일을 처리하지 않도록 한다.
- 영구적인 Data는 여기서 저장한다.
- 액티비티가 이 상태에 들어가면 시스템은 액티비티를 강제 종료할 수 있다.
- ex) A 액티비티에서 B 액티비티를 호출하는 경우, A 액티비티의 onPause() 함수가 먼저 호출되고 나서 B 액티비티가 실행된다.
onStop()
- 액티비티 위에 다른 액티비티가 완전히 올라와 100% 가려질 때 호출되는 함수.
- 액티비티가 사용자에게 더 이상 보이지 않을 때 호출된다.
- 이 상태에서 액티비티가 다시 불려지면
onRestart()함수가 호출된다.
onDestroy()
- 액티비티가 완전히 스택에서 없어질 때 호출되는 함수.
- 즉, 제거되는 경우.
- finish() 메소드가 호출되거나 시스템 메모리 확보를 위해서 시스템이 강제로 종료시키는 경우에 호출될 수 있다.
This post is licensed under
CC BY 4.0
by the author.