티스토리 뷰
Activity 라이프사이클
: Activity의 상태전이에 사용되는 콜백함수 흐름도
onCreate() : 시스템에서 Activity를 생성하기 위해 가장 먼저 실행되는 함수.
onCreate()를 실행하면 Activity 는 "생성됨" 상태가 됨.
Activity의 전체 생명주기에서 단 한번만 실행되며, 애플리케이션의 시작 로직을 수행.
이때, onCreate의 매개변수 savedInstanceState를 수신하는데, 이는 Activity의 이전 저장 상태를 포함한 Bundle 객체.
( 처음생성된 Activity의 경우 Bundle 객체 값은 null )
onStart() : 해당 함수가 실행되면 Activity가 사용자에게 보이게 되며, Activity를 포어그라우드에 보내 사용호작용할 수 있도록 준비함( ex : UI 관리 코드를 초기화 )
onStart()가 실행되면 Activity는 "생성됨" 에서 "재개됨" 상태로 전이됨
onResume() : Activity의 상태가 "재개됨" 에 따라 해당 함수가 호출됨
앱이 사용자와 상호작용함. - 어떤 이벤트가 발생하여 앱에서 포커스가 떠날때까지 앱이 해당 상태에 머무름,
( ex : 전화가 오거나, 사용자가 다른 Activity로 이동하거나, 기기 화면이 꺼지는 등의 이벤트 )
onResume()에서 이벤트가 발생하면 Activity는 onPause()를 호출하고 Activity는 일시정지 상태가 됨
onPause() : 사용자가 Activity를 떠나는 것을 나타내는 첫번째 함수(Activity가 소멸되는 것이 아닌 포어그라운드에 있지 않게 되었다는 의미 )
Activity의 상태가 "일시정지됨" 상태로 전이됨
"중요!! : onPause() 는 매우 짧은 시간 실행되므로 저장작업을 수행하기에는 시간이 부족함"
-> 절대 애플리케이션/사용자 데이털르 저장하거나 네트워크를 호출하거나, 데이터베이스 트랜잭션을 수행하면 안됨!!
onStop() : Activity가 사용자에게 더이상 표시되지 않으면 "중단됨" 상태로 전이됨
( ex : 새로운 Activity가 화면 전체를 차지할 경우 )
이 시점은 구성요소가 화면에 보이지 않을 때 실행할 필요 없는 기능을 모두 정지할 수 있음
( ex : 필요하지 않은 리소스 해제/조정 - 애니메이션 일시정지, 비교적 CPU를 많이 소모하는 작업 종료 등 )
onDestroy() : Activity를 "소멸됨" 상태로 전이시키기 위한 함수
( ex : 사용자가 Activity를 완전히 닫거나 Activity에서 finish()가 호출되어 Activity가 종료되는 경우,
기기 회전, 멀티 윈도우 모드 등의 구성 변경으로 인한 시스템의 일시적 Activity 소멸일 경우 )
https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko#java