본문 바로가기
Android

[안드로이드] Fragment

by Sky Titan 2020. 9. 8.
728x90

Fragment

  • 분할된 화면들을 독립적으로 구성하기 위해 사용함
  • 분할된 화면들의 상태를 관리하기 위해 사용함
  • 액티비티에 동적으로 fragment 추가, 삭제 할 수 있어서 동적으로 UI 구성 가능
  • 항상 activity 위에 올라가 있어야함 (fragment 입장에서는 activity가 시스템의 역할)

※ Activity와 ActivityGroup을 이용하여 여러 개의 액티비티를 사용할 수도

있음

-> but 액티비티는 하나의 화면을 독립적으로 구성할 때 필요한 여러가지 속성들을 사용하며 안드로이드 시스템에서 관리하는 어플리케이션 구성요소

-> 단말의 리소스를 많이 사용하는 비효율적인 방법

Fragment vs Activity

Fragment

Activity

관리 주체

프래그먼트 매니저

안드로이드 시스템의 액티비티 매니저

데이터 전달 역할

메소드

인텐트

액티비티 동작 방식

 

프래그먼트 동작 방식

 

수명주기 (Life Cycle)

1. onAttach

  • 프래그먼트가 부모 액티비티(컨텍스트)에 연결될 때 호출 (바인딩)

2. onCreate

  • 프래그먼트가 처음 생성될 때 호출
  • 프래그먼트 생성
  • 초기화 작업

 

3. onCreateView

  • 프래그먼트가 생성되면 UI를 생성하기 위해 호출
  • UI 생성
  • 프래그먼트 UI 생성 및 인플레이트 한 후 반환

4. onActivityCreated

  • 부모 액티비티와 프래그먼트의 UI가 생성되면 호출
  • 프래그먼트 초기화

5. onStart

  • 가시수명 시작 전 호출

6. onResume

  • 활성수명 시작 전 호출

7. onPause

  • 활성수명 종료 후 호출

8. onSaveInstanceState

  • 활성수명 종료 시 UI 상태 저장을 위해 호출
  • 부모 액티비티 재시작 시 onCreateView와 onActivityCreated에 상태정보 전달

9. onStop

  • 가시수명 종료 후 호출

10. onDestroyView

  • 프래그먼트의 뷰가 분리되면 호출
  • UI 소멸

11. onDestroy

  • 전체수명 종료 후 호출
  • 프래그먼트 소멸

12. onDetach

  • 프래그먼트가 부모 액티비티(컨텍스트)로부터 분리된 후 호출

프래그먼트 트랜잭션 (FragmentTransaction)

  • 액티비티 안에 동적으로 프래그먼트 추가, 제거, 교체할 때 사용됨
728x90

댓글