프로젝트 진행중 , collect 가 두번 발생 하는 현상이 생겼었다.
무언가 잘못 하고 있다는걸 깨닫고 , 다시 근본으로 돌아가 찾아보던 도중 LifecycleOwner 과 viewLifecycleOwner 의
차이를 제대로 알지 못하고 사용해 발생한 문제였다.
프래그 먼트에는 2개의 lifecycle 이 존제 하는데
LifecycleOwner 과 viewLifecycleOwner
이다.
LifecycleOwner는 일반적인 fragment 의 생명주기를 따른다 .
https://developer.android.com/guide/fragments/lifecycle?hl=ko
공식문서에 설명되어 있는대로
onAttach() ~ onDestroy() 까지다.
viewLifecycleOwner 는 fragment 의 뷰에 관한 생명주기 이다. onDestroy() 가 호출 되지 않는다. Fragment 의 자체는 남아있지만 뷰는 사라진 상태
위와 같은 현상은 A fragment 에서 B fragment 로 이동 할때 A fragment 에서 collect 하고 있던 sharedFlow 가 작동 되며 영향을 끼친 것 이었다.
내용에 문제가 있거나 다른 의견이 있으시다면 댓글 부탁드립니다.