android fragment lifecycle adapter 위치 정리

2022. 4. 25. 20:49android

insta clone coding을 하는 도중 궁금한 게 생겨 정리해보려고 한다.

 

fragment에 Recyclerview adapter를 연결해야 했는데 어느 시점에 만들어야 할지 정확히 몰랐다.

 

onCreateView와 onViewcreated 둘 중에 어디로 보낼지 헷갈렸다.

 

그래서 Fragment의 LifeCycle에 대해 검색하였고 공홈에서 알게 되었다.

 

일단 Fragment의 생명주기에 대해 사진으로 보면

 

image credit : android developers 사이트

view를 만들 때 Activity 랑 비슷하지만 조금 길다.

그럼 여기 중에 내가 Adapter를 넣어야 하는 곳은 어디일까??

검색해 보니 공식 홈에 onCreateView()에서 작업하라고 나와있다.

LiveData, RecyclerView, ViewPager2 adpater 등을 이곳에서 update , set up 하기 적합한 곳이라고 한다. 

여러 블로그를 참조해 본 결과

  1. onCreate() -> 리소스 초기화 작업을 하는 곳
  2. onCreateView() -> 여기서 뷰를 그려야 한다.
  3. onViewCreated() -> 뷰를 변경하고 싶을 때 이곳에서 변경한다.
  4. onViewStateRestored() -> 이 상태는 fragment의 view에 상태를 저장하는 시점이다. 저장은 SparseArray <Parcelable> 타입의 mSavedViewState를 가지고 있고 onViewCreated()에서 넘어올 때 state를 가지고 있으면 복구한다. 그리고 onStart()로 넘어가고 다른 activity or fragmentn로 가게 되면 onResume()에서 onPause()로 넘어가고 onStop 직후 view 상태를 state에 저장한다. 그 후 DestoryView 하고 넘어가는 fragment는 onCreateView 하고  onViewCreated 지나서 state를 채우고 나중에 사용한다.