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
,谢谢!