首页 > 解决方案 > 如何检查是否已经收听了任何活动的流?

问题描述

有什么方法可以检查 Dart/Flutter 中是否有任何活动的 Stream 已经被收听过?

假设在一个屏幕上已经收听了一个 Stream。但是,我需要在另一个屏幕上收听该流。所以我需要检查是否有任何活动流已经被收听过。

标签: flutterdartstream

解决方案


您必须使用' 方便的getterStreamController来检查流是否已被收听。StreamControllerhasListener

这是要理解的最小示例代码:

StreamController controller = StreamController();
controller.addStream(getNumbersAsStream());

controller.stream.listen((e) => print(e));
if (!controller.hasListener) {
  controller.stream.listen((e) => print(e));
} else {
  print("Stream has already been listened");
}

推荐阅读