Android

[Android]FragmentLifeCycle

onemask 2019. 7. 10. 00:41

* What is Fragment? 

Activity내에서 사용자 인터페이스의 일부를 나타낸다.
여러 개의 프래그먼트를 조합하여 하나의 액티비티로 여러 화면을 구축할 수 있다.

태블릿 형식의 디바이스가 등장하면서 다양한 UI 형태를 하나의 화면에 맞춰서 재사용하기 위해 고안되었다. 

Fragment가 나오게 된 이유

 

* Fragment Lifecycle 

Fragment는 Activity에 종속적이기에

Activity를 먼저 생성해야 하며. 

종속된 Activity의 Lifecycle과도 연관 되어있다. 

 

FragmentLifecycler 

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