📌Activity
Activity 클래스는 Android 앱의 중요한 구성요소로 활동이 실행되고 결합되는 방식은 플랫폼 애플리케이션 모델의 기본 요소입니다.
앱이 UI를 그리는 창을 제공합니다.
📌Activity 생명주기
onCreat()
- 시스템이 활동을 생성할 때 실행되는 이 콜백을 구현해야 합니다. 구현 시 활동의 필수 구성요소를 초기화해야 합니다.
onStart()
- onCreate()가 종료되면 활동은 '시작됨' 상태로 전환되고 활동이 사용자에게 표시됩니다. 이 콜백에는 활동이 포그라운드로 나와서 대화형이 되기 위한 최종 준비에 준하는 작업이 포함됩니다.
onResume()
- 활동이 사용자와 상호작용을 시작하기 직전에 시스템은 이 콜백을 호출합니다. 이 시점에서 활동은 활동 스택의 맨 위에 있으며 모든 사용자 입력을 캡처합니다. 앱의 핵심 기능은 대부분 onResume() 메서드로 구현됩니다.
onPause()
- 활동이 포커스를 잃고 '일시중지됨' 상태로 전환될 때 시스템은 onPause()를 호출합니다. 예를 들어 이 상태는 사용자가 뒤로 또는 최근 버튼을 탭할 때 발생합니다. 시스템이 활동에서 onPause()를 호출할 때 이는 엄밀히 말하면 활동이 여전히 부분적으로 표시되지만 대체로 사용자가 활동을 떠나고 있으며 활동이 조만간 '중지됨' 또는 '다시 시작됨' 상태로 전환됨을 나타냅니다. onPause()가 실행을 완료하면 다음 콜백은 활동이 '일시중지됨' 상태로 전환된 후 발생하는 상황에 따라 onStop() 또는 onResume()입니다.
onStop()
- 활동이 사용자에게 더 이상 표시되지 않을 때 시스템은 onStop()을 호출합니다. 이는 활동이 제거 중이거나 새 활동이 시작 중이거나 기존 활동이 '다시 시작됨' 상태로 전환 중이고 중지된 활동을 다루고 있기 때문에 발생할 수 있습니다. 이 모든 상황에서 중지된 활동은 더 이상 표시되지 않습니다.
onRestart()
- '중지됨' 상태의 활동이 다시 시작되려고 할 때 시스템은 이 콜백을 호출합니다. onRestart()는 활동이 중지된 시간부터 활동 상태를 복원합니다.
이 콜백 뒤에 항상 onStart()가 옵니다.
onDestroy()
- 시스템은 활동이 제거되기 전에 이 콜백을 호출합니다. 일반적으로 활동 또는 활동이 포함된 프로세스가 제거될 때 활동의 모든 리소스를 해제하도록 구현됩니다.
📌Fragment
Fragment는 FragmentActivity 내의 어떤 동작 또는 사용자 인터페이스의 일부를 나타냅니다.
프래그먼트는 액티비티의 모듈식 섹션이라고 생각하면 됩니다. 이는 자체적인 수명 주기를 가지고, 자체 입력 이벤트를 수신하고, 액티비티 실행 중에 추가 및 삭제가 가능합니다.
프래그먼트는 항상 액티비티 내에서 호스팅되어야 하며 해당 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받습니다. 각 프래그먼트의 개별적 조작도 가능합니다.
📌Fragment 생명주기
프래그먼트를 재개된 상태(사용자와 상호 작용)로 가져오기 위해 호출되는 일련의 핵심 수명 주기 메서드는 다음과 같습니다.
- 프래그먼트가 활동과 연결되면 onAttach가 호출됩니다.
- onCreate프래그먼트의 초기 생성을 수행하기 위해 호출됩니다.
- onCreateView프래그먼트와 관련된 뷰 계층 구조를 생성하고 반환합니다.
- onActivityCreated활동이 자체 android.app.Activity#onCreate를 완료했음을 프래그먼트에 알립니다.
- onViewStateRestored뷰 계층 구조의 모든 저장된 상태가 복원되었음을 프래그먼트에 알립니다.
- onStart프래그먼트가 사용자에게 표시되도록 합니다(포함하는 활동이 시작됨을 기반으로 함).
- onResume프래그먼트가 사용자와 상호 작용을 시작하도록 합니다(포함하는 활동이 재개됨을 기반으로 함).
프래그먼트는 더 이상 사용되지 않으면 일련의 역순 콜백을 거칩니다.
- onPause액티비티가 일시 중지되었거나 프래그먼트 작업이 액티비티에서 프래그먼트를 수정하기 때문에 프래그먼트는 더 이상 사용자와 상호 작용하지 않습니다.
- onStop프래그먼트 활동이 중지 중이거나 프래그먼트 작업이 활동에서 프래그먼트를 수정하기 때문에 더 이상 사용자에게 프래그먼트가 표시되지 않습니다.
- onDestroyView프래그먼트가 보기와 연결된 리소스를 정리할 수 있습니다.
- onDestroy프래그먼트 상태의 최종 정리를 수행하기 위해 호출됩니다.
- onDetach프래그먼트가 더 이상 활동과 연결되지 않기 직전에 호출됩니다.