강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

shhsjk2002님의 프로필 이미지
shhsjk2002

작성한 질문수

Flutter 중급 1편 - 클린 아키텍처

34 노트 수정

eventStream 중지에 대해

작성

·

332

0

ViewModel을 하나만 생성하고 재활용할 때,

eventController는 하나인데 listen하고 있는 화면은 계속 생성되고 메모리에 남아있어서

저장을 한 번 할때마다 이벤트가 여러 곳에 날라가는 것 같습니다.

해결 방법으로는 화면이 dispose 되면 eventController를 cancel 해주거나,

ViewModel을 계속 생성하거나 (eventController가 계속 생성되고 전에 것들은 메모리에 남아있어서 좋은 방법은 아닌 것 같습니다.)

unMounted 일 때 return; 해버리면 될 것 같습니다.

답변 1

1

오준석님의 프로필 이미지
오준석
지식공유자

ViewModel을 공유하는 것 보다 화면마다 ViewModel을 하나씩 가지는 것이 가장 좋은 방법인 것 같습니다.

그럼 위와 같은 처리를 하지 않아도 되니까요.

그리고 말씀대로 listen() 이 리턴하는 Subscription 객체를 적절히 cancel() 하는 것이 좋습니다.

shhsjk2002님의 프로필 이미지
shhsjk2002

작성한 질문수

질문하기