[Android] Activity, Fragment

이주형·2022년 12월 12일
0

📌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 생명주기

프래그먼트를 재개된 상태(사용자와 상호 작용)로 가져오기 위해 호출되는 일련의 핵심 수명 주기 메서드는 다음과 같습니다.

  1. 프래그먼트가 활동과 연결되면 onAttach가 호출됩니다.
  2. onCreate프래그먼트의 초기 생성을 수행하기 위해 호출됩니다.
  3. onCreateView프래그먼트와 관련된 뷰 계층 구조를 생성하고 반환합니다.
  4. onActivityCreated활동이 자체 android.app.Activity#onCreate를 완료했음을 프래그먼트에 알립니다.
  5. onViewStateRestored뷰 계층 구조의 모든 저장된 상태가 복원되었음을 프래그먼트에 알립니다.
  6. onStart프래그먼트가 사용자에게 표시되도록 합니다(포함하는 활동이 시작됨을 기반으로 함).
  7. onResume프래그먼트가 사용자와 상호 작용을 시작하도록 합니다(포함하는 활동이 재개됨을 기반으로 함).

프래그먼트는 더 이상 사용되지 않으면 일련의 역순 콜백을 거칩니다.

  1. onPause액티비티가 일시 중지되었거나 프래그먼트 작업이 액티비티에서 프래그먼트를 수정하기 때문에 프래그먼트는 더 이상 사용자와 상호 작용하지 않습니다.
  2. onStop프래그먼트 활동이 중지 중이거나 프래그먼트 작업이 활동에서 프래그먼트를 수정하기 때문에 더 이상 사용자에게 프래그먼트가 표시되지 않습니다.
  3. onDestroyView프래그먼트가 보기와 연결된 리소스를 정리할 수 있습니다.
  4. onDestroy프래그먼트 상태의 최종 정리를 수행하기 위해 호출됩니다.
  5. onDetach프래그먼트가 더 이상 활동과 연결되지 않기 직전에 호출됩니다.

0개의 댓글