Fragment는 lifecycle부터 code 까지 Activity와 많은 부분이 비슷하고, Activity의 UI Layout 부분에서 힘든 것들을 보완 할 수 있도록 구현이 되어있습니다.

Fragment는 허니콤(Honeycomb - API 11)부터 사용할 수 있으며, 액티비티가 화면을 구성함에 있어 전체 레이아웃의 한 부분으로서 존재하며 화면에 보여지게 되죠.
(호환 라이브러리를 사용하면 하위 버전에서도 사용할 수 있습니다.)


전체적인 Lifecycle만 봐도 액티비티와 정말 많이 닮아있는 걸 알 수 있죠.



 
 onAttach(Activity)
 액티비티에 레이아웃을 구성하는 하나의 조각으로서 붙을때(attach) 한번 호출(called once)된다.
 
 onCreate(Bundle)
 fragment의 초기 생성을 하기 위해서 호출된다. 액티비티의 onCreate와 같은 기능.

 onCreateView(LayoutInflater, ViewGroup, Bundle)
 fragment의 view hierachy를 만들고 return한다.

 onActivityCreated(Bundle)
 fragment를 가지고 있는 Activity의 생성(Activity.onCreate)이 완료되었을 때 호출된다.

 onStart()
 fragment를 유저에게 보일 수 있도록 만든다.(Fragment를 가지고 있는 Activity start를 기반으로 한다.)
 
 onResume()
 fragment를 유저와 상호작용(interacting) 할 수 있도록 만든다.
 (Fragment를 가지고 있는 Activity의 resume을 기반으로 한다.)

 onPause()
 fragment가 더이상 유저와 interacting활 수 없는 상태가 되면 호출된다.
 activity가 pause되었을때나, activity에서 fragment operation이 수정되었을때가 해당된다.

 onStop()
 fragment가 더이상 유저에게 보이지 않게되면 호출된다.
 activity가 stop되었을때나, activity에서 fragment operation이 수정되었을때가 해당된다.

 onDestroyView()
 fragment의 view resource를 clean up 하도록 하는 메소드이다. 
 
 onDestroy()
 fragment state를 마지막으로 cleanup 하기위해 호출된다.

 onDetach()
 fragment가 fragment를 포함하던 activity에서 떨어져 나가게(관련없게) 되면 즉시 호출된다.
   


대충 훅훅 훑어보면, 액티비티의 lifecycle + UI의 일부분인 view's lifecycle 이라고 할 수 있을 것 같습니다.

액티비티에 붙고, 생성되고,
뷰를 만들고, 액티비티가 다 만들어지면 화면에 보여지고,
그 이후 활동을 하다가,
다시 액티비티가 활동을 멈추려고(pause)하면 같이 그 라이프사이클을 타며 대기를 타다,
destory될수도 있고 아닐수도 있고,
어쨋든 destroy까지 갔다면, 액티비티에서 떨어져나오는... 그런 라이프 사이클이네요.

추가된 부분이 조금 있을뿐, Activity Lifecycle과 비교해 많이 달라진 건 없군요.


 The activity lifecycle's affect on the fragment lifecycle.



'Android > Fragment' 카테고리의 다른 글

[Android] Fragment(프래그먼트) for Honeycomb  (5) 2011.10.28
[Android] Fragment Lifecycle(With Activity)  (1) 2011.10.17
[Android] Fragment Lifecycle  (1) 2011.10.14
Posted by croute

댓글을 달아 주세요

  1. munGap 2015.01.27 17:29  댓글주소  수정/삭제  댓글쓰기

    퍼가요~