Android(Kotlin)

안드로이드 액티비티와 프래그먼트 생명주기

E.I.T.U 2021. 7. 23. 11:59

Activity Lifecycle

onCreate() : 액티비티가 생성되는 시기

onStart() : 생성된 액티비티가 화면에 보이기 시작하는 시기

onResume() : 액티비티가 실제로 실행됨

*실행 중을 나타내는 생명주기는 따로 존재하지않고

onResume이 호출되었다면 그 액티비티가 실행중인것

onPause() : 액티비티의 일부가 다른 액티비티에 의해 가려짐

*다른 액티비티가 투명하거나 작아서 뒤쪽 액티비티의 일부분이라도 보인다면 onPause 상태

onStop() : 다른 액티비티가 실행되어서 화면이 완전히 가려짐

onDestroy : 액티비티가 종료됨

*finish()나 뒤로가기가 실행되면 onPause와 onStop이 동시에 실행된 후 onDestroy가 호출되며

액티비티가 메모리에서 제거됨

 

Fragment Lifecycle

onAttach() : 프래그먼트 매니저를 통해 액티비티에 프래그먼트가 추가되고 commit 될때 호출

*생성자로 호출하는 순간에는 호출되지 않음

onCreate() : 프래그먼트가 생성되며 호출, 주로 뷰와 관련없는 변수 등을 초기화하는 시기

onCreateView() : 인터페이스 관련 뷰를 초기화하는 시기

onStart() : 화면 생성 후 화면에 입력될 값을 초기화하는 시기

onResume() : onStart와 같은 용도로 사용

onPause() : 현재 프래그먼트가 화면에서 사라지면 호출, 현재 작업을 잠시 멈추는 용도로 사용

*onPause 상태가 풀릴땐 onStart를 건너뛰고 onResume이 호출

onStop() : 현재 프래그먼트가 완전히 보이지 않게 되면 호출

onDestroyView() : 뷰의 초기화를 해제, onCreateView에서 inflater로 생성한 뷰가 모두 소멸

onDestory() : 액티비티에는 남아있지만 프래그먼트 자체는 소멸

*프래그먼트에 연결된 자원을 해제하는 용도로 사용

onDetach() : 액티비티에서 연결이 해제