안드로이드 개발 팁 #55 - 프래그먼트에서 코루틴 플로우 수집 주기 정하기

프래그먼트에서 코루틴 플로우 수집 주기 정하기

No. 55
2023. 11. 24 (금) | Written by @dorian-mobileapp

시작하며…

메인 액티비티에서 프래그먼트를 빠르게 이동하다 보니 앱이 죽는 문제가 있었습니다. 사이드 프로젝트에서 일어난 버그였죠. (실무에서 그러면 큰일납니다. ㅎㅎㅎ) 코루틴 플로우 수집 주기를 잘못 정한 것이 원인이었습니다. 오늘은 앱이 죽는 문제를 막기 위해 코루틴 플로우 수집 주기를 어떻게 정할지 정리해 봅니다.


프래그먼트에서 코루틴 플로우 수집시 발생할 수 있는 문제점

프래그먼트의 생명주기에서는 Fragment 클래스의 onCreateView() 메소드가 실행될 때 뷰들이 생성되구요. onDestroyView() 메소드가 실행될 때 뷰들이 소멸됩니다. 만약 후자가 실행된 후에도 코루틴 플로우가 수집되고 있다면, 앱은 강제 종료 당할 수 있습니다. 플로우 수집시 실행되는 코드가 이미 사라지고 없는 뷰에 접근할 가능성이 있기 때문입니다.


프래그먼트에서 코루틴 플로우 수집 주기 정하기

화면을 업데이트하기 위해 코루틴 플로우 수집 주기는 다음과 같이 정해야 합니다.

  • 시작: Fragment.onCreateView() 메소드 실행시
  • 끝: Fragment.onDestroyView() 메소드 실행시

코드를 작성하면 다음과 같습니다.

viewLifecycleOwner.lifecycleScope.collect {
    // 코루틴 플로우 수집 코드 작성
}

참고 링크


지난 안드로이드 개발 팁


Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Sort:  

Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!

Coin Marketplace

STEEM 0.29
TRX 0.11
JST 0.031
BTC 68545.57
ETH 3900.20
USDT 1.00
SBD 3.71