이미지 출처 : 구글 코드랩
1) onCreate()
- 모든 Activity에서 반드시 구현해야하는 메소드입니다.
- Activity의 UI 레이아웃을 지정해야 하는 위치입니다
- onCreate()는 Activity가 OS에서 메모리에 새 Activity 객체를 만드는 초기화(initialized) 작업 직후 한번만 호출 됩니다.
2-1) onStart()
- onStart()가 실행되면 Activity가 화면에 표시되기 시작합니다.
- onStart() 상태에서는 사용자가 앱과 상호작용할 수 없습니다.
- onCreate()와 달리 onStart()는 Activity의 수명주기 동안 시스템이 여러 번 호출 가능합니다.
- 포그라운드 상태는 아닙니다.
2-2) onRestart()
- onRestart()의 역할은 기본적으로 onStart()와 유사합니다.
- onRestart()는 Activity가 처음으로 초기화 될 때는 호출되지 않습니다.
- onRestart()는 Activity가 처음 생성된 이후 onStop() 상태에서 다시 액티비티가 실행되었을 때 수행해야 할 작업이 필요한 경우 사용합니다.
3) onResume()
- onResume()이 실행되면 앱이 포커스를 가집니다.
- onResume() 상태에서는 사용자가 앱과 상호작용할 수 있습니다.
- 포그라운드 상태입니다.
4) onPause()
- Activity에서 포커스가 사라지면 onPause()가 호출됩니다.
- onPause()가 호출되면 액티비티는 포그라운드 상태에서 백그라운드 상태로 전환됩니다.
- ex) 카톡 알림이 와서 Activity의 일부를 가리면 onPause()가 호출 됩니다.
5) onStop()
- Activity가 화면에 표시되지 않으면 onStop()이 호출 됩니다.
- 이 때 Activity는 완전히 사라지는 것이 아니라 백그라운드에 위치하게 됩니다.
- 백그라운드 상태입니다.
- ex) 홈버튼을 눌러 홈화면으로 나가기
6) onDestroy()
- onDestroy()는 Activity가 리소스(메모리)를 더 이상 사용하지 않도록 Activity와 하위 객체들을 소멸시킵니다.
- onCreate()와 마찬가지로 Activity 인스턴스의 생명주기에서 1번만 호출됩니다.
- ex) Configuration changes(구성변경) => 화면 회전, 언어 변경, 다크 모드 등