본문 바로가기

개발/Android

[Android] 프래그먼트(Fragment)와 생명주기(Life Cycle)

반응형

프래그먼트란?

 

프래그먼트는 안드로이드 3.0부터 도입된 컴포넌트입니다. 뷰를 가질 수 있어 UI를 가진 컴포넌트로서 통합할 수 있습니다. 또한 액티비티와 마찬가지로 생명주기를 가지며, 개개의 생명주기에 따라 처리를 구현할 수 있다는 특징도 있습니다. 그러므로 액티비티와 유사한 형태로 이용할 수 있습니다.

 

액티비티는 한 화면당 1개씩 있는 형태였지만 프래그먼트는 액티비티 1개당 여러 개 존재할 수 있습니다. 그러므로 액티비티 1개로 구현했던 것을 기능 단위로 프래그먼트로 나누어 구현할 수 있습니다. 

 

프래그먼트는 안드로이드 의 프레임워크에서 구현된 것과 지원 라이브러리에서 구현된 것으로 2가지가 있습니다. 안드로이드 2.3 이상을 지원하는 경우 지원 라이브러리를 이용할 수밖에 없지만 안드로이드 4.1 이상을 지원하는 경우라도 지원 라이브러리를 이용하는 편이 좋습니다. 지원 라이브러리 쪽은 새로운 OS에서 구현된 기능이 수시로 백포트 되기 때문입니다.

 

프래그먼트 생명주기

 

프래그먼트는 액티비티와 마찬가지로 생명주기를 가집니다.

 

 

 

메서드명 시점 실행하는 처리의 예 
onAttach  프래그먼트와 액티비티가 연결될 때  이 시점에서 getActivity 메서드는 null을 반환한다.
onCreate  생성 시  초기화 처리 
onCreateView  생성 시  뷰 생성 //뷰가 만들어지면 onViewCreatd()가 콜백.
onActivityCreated  생성 시  초기화 처리, 뷰 생성(setContentView의 호출) 등 
onStart 비표시 상태   표시 전 시점 
onResume  표시시   필요한 애니메이션 등 실행 화면 갱신 처리 
 onPause  일부 표시(일시정지)상태  애니메이션 등 화면 갱신 처리 정지, 일시정지 시에 불필요한 리소스 해제, 필요한 데이터 영속화 
onStop  비표시 상태  비표시된 시점 
onDestroyView  폐기 시 필요 없는 리소스 해제 
onDestroy  폐기 시 필요 없는 리소스 해제 
onDetach  폐기 시 필요 없는 리소스 해제 

 

- [참조자료] 안드로이드 개발 레벨업 교과서

반응형