TextEditingController, AnimationController, ScrollController 등은 사용이 끝난 후
dispose 메서드를 호출 리소스를 해제
@override
void dispose() {
myController.dispose();
super.dispose();
}
Future나 Stream을 사용하는 경우, 해당 비동기 작업이 완료된 후에는 dispose 메서드에서 클린업을 수행해야 합니다.
@override
void dispose() {
myFuture.cancel(); // 예시: Future를 취소
super.dispose();
}
예를 들어, 파일이나 데이터베이스와 같은 외부 자원에 접근하는 경우, 해당 자원을 정리하고 닫아주는 작업이 필요할 수 있습니다.
@override
void dispose() {
myDatabase.close(); // 데이터베이스 연결을 닫음
super.dispose();
}
만약 사용자가 정의한 커스텀 위젯이 리소스를 사용하고 있다면, 해당 위젯 내에서 dispose 메서드를 정의하여 리소스를 해제해야 합니다.
@override
void dispose() {
// 커스텀 위젯에서 사용한 리소스 해제
super.dispose();
}