-
[Android]FragmentLifeCycleAndroid 2019. 7. 10. 00:41
* What is Fragment?
Activity내에서 사용자 인터페이스의 일부를 나타낸다.
여러 개의 프래그먼트를 조합하여 하나의 액티비티로 여러 화면을 구축할 수 있다.태블릿 형식의 디바이스가 등장하면서 다양한 UI 형태를 하나의 화면에 맞춰서 재사용하기 위해 고안되었다.
* Fragment Lifecycle
Fragment는 Activity에 종속적이기에
Activity를 먼저 생성해야 하며.
종속된 Activity의 Lifecycle과도 연관 되어있다.
Activity State : Create
-
onAttach()
Fragment가 Activity에 추가될 때 호출된다. -
onCreate() 🔥
Fragment가 생성되는 시점이며 종속되어 있는 Activity의 호출을 받아 생성된다.
Fragment의 초기화 리로스 작업을 주로 한다. -
onCreateView()🔥
Layout를 inflate하는 곳이다. 여기서 화면이 나타나고 inflate 된 view객체를 반환하여 다시금 Acitivyt와 연결해준다. -
onActivityCreate()
Fragment 생성 이후 호출.
Activity.onCreate()가 호출 될 때 호출된다.
Activity와 연결이 되었기에 findViewId()로 객체 접근이 가능하다.
Activity State : Start
- onStart()
Fragmen 화면에 표시 될 때 호출된다.
Activity State : Resume
- onResume()
Fragment가 화면에 보여지고 사용자의 focus를 받은 상태이며 사용자와 상호작용이 가능하다.
Activity State : Pause
- onPause() 🔥
Fragment가 focus를 잃을 때 호출되며, Fragment의 data를 저장해야 한다.
Activity State : Stop
- onStop()
Fragment가 화면에 보이지 않고 기능이 중지될 때 호출된다.
Activity State : Destroy
- onDestorView()
Fragment의 View에 대한 리소스 해제된다.backward & replace으로 삭제되는 경우 호출. - onDetach
Fragment까 완전히 종료되는 시점. - onDestroy
Activity와 연결이 끊어질 때 호출된다.
* Conclusion
🔥표시 붙여놓은것들이 구글에서 권장하는 최소 Lifecycle구현 메소드이다.
Fragment마다 대응되는 Activity State에 대하여 정리 하였다.
아래의 그림과 동일하다고 생각하면 된다.
* Ref)
FragmentLifecycle - https://medium.com/@lazysoul/android-fragment-lifecycle-e44906ec4406
FragmentLifecycle - https://woovictory.github.io/2019/01/02/Android-What-Is-Fragment/
Android Ref - https://developer.android.com/guide/components/fragments?hl=ko
LIST'Android' 카테고리의 다른 글
[Android] RecyclerView DiffUtil (0) 2020.05.24 [Android] Android Stack 관리 / 확인하기 (0) 2020.02.16 [Android] 키해시 구하기 (0) 2019.07.06 [Android]안드로이드 토글 버튼 만들기. (0) 2019.05.27 [Android] 안드로이드 커스텀 버튼 만들기. (1) 2019.05.23 -