Flutter 将在一个省道中防止每个泄漏';什么是广播流?

Flutter 将在一个省道中防止每个泄漏';什么是广播流?,flutter,dart,dart-async,Flutter,Dart,Dart Async,我有一个StreamController.broadcast(),我在创建时将它的Steam传递给我的许多flatter小部件 由于在每次build时,我都会重新创建这些小部件,我想知道在这些小部件中使用Stream.forEach()是否不会导致内存泄漏,因为forEach()没有关闭订阅的机制。我想知道那些订阅对象是否不会被清除,或者即使小部件本身也不会内存不足。是的,会的 侦听器将一直保持,直到流结束或发出错误 因此,如果您在build内部执行Stream.forEach,则任何对小部件的

我有一个
StreamController.broadcast()
,我在创建时将它的
Steam
传递给我的许多flatter小部件

由于在每次
build
时,我都会重新创建这些小部件,我想知道在这些小部件中使用
Stream.forEach()
是否不会导致内存泄漏,因为
forEach()
没有关闭
订阅的机制。我想知道那些
订阅
对象是否不会被清除,或者即使小部件本身也不会内存不足。

是的,会的

侦听器将一直保持,直到流结束或发出错误


因此,如果您在
build
内部执行
Stream.forEach
,则任何对小部件的重建都将添加一个侦听器,而不会删除上一个侦听器。

好的,因此我将用
listen
替换它,并在我的
状态下调用
cancel
。dispose
,谢谢!