인프런 커뮤니티 질문&답변
eventStream 중지에 대해
작성
·
332
0
ViewModel을 하나만 생성하고 재활용할 때,
eventController는 하나인데 listen하고 있는 화면은 계속 생성되고 메모리에 남아있어서
저장을 한 번 할때마다 이벤트가 여러 곳에 날라가는 것 같습니다.
해결 방법으로는 화면이 dispose 되면 eventController를 cancel 해주거나,
ViewModel을 계속 생성하거나 (eventController가 계속 생성되고 전에 것들은 메모리에 남아있어서 좋은 방법은 아닌 것 같습니다.)
unMounted 일 때 return; 해버리면 될 것 같습니다.
답변 1
1
오준석
지식공유자
ViewModel을 공유하는 것 보다 화면마다 ViewModel을 하나씩 가지는 것이 가장 좋은 방법인 것 같습니다.
그럼 위와 같은 처리를 하지 않아도 되니까요.
그리고 말씀대로 listen() 이 리턴하는 Subscription 객체를 적절히 cancel() 하는 것이 좋습니다.





