Flutter BLoC (flutter_bloc) 是否有等同于 onDispose 的功能?

Does Flutter BLoC (flutter_bloc) have an equivalent to onDispose?

我使用 flutter_bloc 创建了一个 BLoC,我在上面收听了一个流。当父小部件(以及 BLoC 对象)被处置时,我想关闭我的流。

class ChatBloc extends Bloc<ChatEvent, ChatState> {
  //..bloc params..//

  ChatBloc(this.chatId) {
    this.add(MarkAsRead());
    subscription = messagesFirestoreRepository.chatMessages(chatId).listen((messages) {
      this.add(UpdateMessages(messages));
    });
  } //I WANT TO CLOSE THIS WHEN THE BLOC GETS DISPOSED OR DEINITED

  //..other stuff..//
}

flutter_bloc 或 'Any' class 是否具有 dispose 或 Swift 的 deinit 的等价物?

谢谢!

您可以覆盖 close 方法:

class ChatBloc extends Bloc<ChatEvent, ChatState> {
  @override
  Future<void> close() {
    // Release resources here
    super.close();
  }
}