사용자가 앱을 사용하다가, 앱에서 나가고, 앱으로 다시 돌아오면 액티비티 인스턴스는 수명주기 안에서 "상태"가 바뀐다. Activity 클래스에서는 액티비티가 상태 변화를 알아차릴 수 있는 콜백을 제공한다.
즉, 안드로이드 앱이 실행된 후 다른 액티비티 화면으로 전환되거나, 화면이 꺼짐, 폰 상태바를 내려서 액티비티가 가려짐, 혹은 앱이 종료 될 때 등을 상태변화가 일어난다고 한다. 이러한 상태 변화가 있을 때마다 화면에 보이는 액티비티의 생명주기 메서드를 호출해서 상태 변화를 알려준다.
활동 수명 주기 단계 간에 전환하기 위해 활동 클래스는 6가지 콜백으로 구성된 핵심 집합의
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()
를 제공한다. 활동이 새로운 상태에 들어가면 시스템은 각 콜백을 호출한다.
메서드 | 설명 |
---|---|
onCreate() | 액티비티가 실행 될 때 최초로 실행 됨 |
onStart() | 화면에 보여지기 시작 |
onResume() | 화면에 나타나고 실행 중인 상태 |
onPause() | 액티비티 화면의 일부가 다른 액티비티에 가려짐 |
onStop() | 액티비티가 완전히 가려짐 |
onDestroy() | 액티비티가 종료 됨 |
전화가 오거나, 사용자가 다른 활동으로 이동하거나, 기기 화면이 꺼지는 이벤트
가 이에 해당한다. 포그라운드에 있지 않게 되었다
는 것을 나타낸다.MainActivity
화면이 나타날 경우 onCreate() - onStart() - onResume()
순으로 메서드가 호출된다. MainActivity_LifeCycle D onCreate()
MainActivity_LifeCycle D onStart()
MainActivity_LifeCycle D onResume()
MainActivity
에서 SubActivity
로 이동할 경우 MainActivity는 Pause
상태에 들어가고 SubActivity는 onCreate() - onStart() - onResume()
순으로 메서드가 호출된다. Resume
상태에 들어간 후 MainActivity가 Stop
상태에 들어간다.MainActivity_LifeCycle D onPause()
SubActivity_LifeCycle D onCreate()
SubActivity_LifeCycle D onStart()
SubActivity_LifeCycle D onResume()
MainActivity_LifeCycle D onStop()
SubActivity
를 finish()
로 종료하여 MainActivity
가 나타날 경우 SubActivity는 Pause
상태에 들어가고 MainActivity는 onRestart() - onStart() - onResume()
순으로 메서드가 호출된다. Resume
상태에 들어간 후 MainActivity가 Stop
상태에 들어가고 이어 onDestroy
가 호출된다.SubActivity_LifeCycle D onPause()
MainActivity_LifeCycle D onRestart()
MainActivity_LifeCycle D onStart()
MainActivity_LifeCycle D onResume()
SubActivity_LifeCycle D onStop()
SubActivity_LifeCycle D onDestroy()