【发布时间】:2019-12-21 03:37:14
【问题描述】:
我在我的 Flutter 应用程序中按照 BLOC 模式使用 dart Streams,所以从逻辑上讲,每当我使用 Bloc 完成时,我都需要处理其中的所有流。
因此,在有状态小部件提供的 dispose 方法中,我正在调用 drain 方法,如下所示:
dispose() async {
print('Started Dispose');
await _mainStream.drain();
print('_mainStream Drained');
}
所以发生的情况是我看到第一个打印,但看不到第二个,这意味着我的流没有耗尽,如果我在收到新事件时收听流并打印一些东西,我仍然会在调试中看到该消息控制台即使我的 Bloc 已从小部件树中释放。
所以基本上我的流仍然存在于某个地方。我该如何解决这个问题,因为它让我发疯。
【问题讨论】: