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

김상호님의 프로필 이미지
김상호

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

PaginationListView 위젯 작업하기

리스너 dispose 질문입니다

작성

·

305

0

5분 15초 쯤에 ScrollController 의 리스너 dispose하고

ScrollController 도 dispose 하시는데 질문이 3가지 있습니다.

  1. 둘 중 하나라도 dispose를 안 하면 어떻게 되는 건가요?

  2. RestaurantScreen, DetailScreen 에서는 dispose를 안 했는데 여기에서 한 이유가 있을까요?

  3. 모든 리스너들은 다 dispose를 해줘야 하는지입니다.

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

보편적인 의미에서의 리스너들은 '백그라운드에서 지속적'으로 실행하는 기능을 갖고 있습니다.

ScrollController의 리스너도 마찬가지로 스크롤이 되는 순간을 항상 포착하기 위해 리스닝 하고 있는 기능입니다.

ScrollController를 dispose() 해주면 리스너는 따로 dispose() 할 필요가 없습니다. ScrollController가 dispose()되면 리스너도 함께 dispose() 됩니다.

모든 리스너는 항상 dispose() 해주는게 좋습니다. dispose()를 실행하지 않으면 생성 될때마다 새로운 리스너가 생성돼서 흔히 말하는 메로리 릭이 생깁니다.

답변이 충분하지 않았다면 다시 댓글 부탁드립니다!

감사합니다!

김상호님의 프로필 이미지
김상호

작성한 질문수

질문하기