LifecycleOwner 와viewLifecycleOwner

semin8990·2024년 4월 4일

안드로이드

목록 보기
5/10

프로젝트 진행중 , collect 가 두번 발생 하는 현상이 생겼었다.

무언가 잘못 하고 있다는걸 깨닫고 , 다시 근본으로 돌아가 찾아보던 도중 LifecycleOwnerviewLifecycleOwner
차이를 제대로 알지 못하고 사용해 발생한 문제였다.

프래그 먼트에는 2개의 lifecycle 이 존제 하는데
LifecycleOwnerviewLifecycleOwner

이다.

LifecycleOwner

LifecycleOwner는 일반적인 fragment 의 생명주기를 따른다 .

https://developer.android.com/guide/fragments/lifecycle?hl=ko

공식문서에 설명되어 있는대로
onAttach() ~ onDestroy() 까지다.

viewLifecycleOwner

viewLifecycleOwner 는 fragment 의 뷰에 관한 생명주기 이다. onDestroy() 가 호출 되지 않는다. Fragment 의 자체는 남아있지만 뷰는 사라진 상태


위와 같은 현상은 A fragment 에서 B fragment 로 이동 할때 A fragment 에서 collect 하고 있던 sharedFlow 가 작동 되며 영향을 끼친 것 이었다.



내용에 문제가 있거나 다른 의견이 있으시다면 댓글 부탁드립니다.

profile
안드로이드 개발자

0개의 댓글