【发布时间】:2020-10-01 20:37:38
【问题描述】:
我有以下流订阅
Stream<Uint8List> stream = await USBSerialSingleton.instance.inputStream;
usbStream = stream.listen(onDataReceivedFromUSBSerial);
inputStream 是这样暴露的广播流。
Future<Stream<Uint8List>> get inputStream async {
final UsbPort port = await this.port;
return port.inputStream.asBroadcastStream();
}
我想停止收听直播,所以我打电话给
usbStream.cancel();
但我一直在我的 onDataReceivedFromUSBSerial 方法上收到消息。即使我关闭了所有这些都在其上实现的对话,我仍然会在onDataReceivedFromUSBSerial 上收到消息。
问题:如何停止收听我的usbStream?
【问题讨论】:
-
你在做什么看起来是正确的。您确定要取消的
usbStream订阅是正确的吗? -
@pskink 知道为什么我的没有取消吗?
-
@lrn 是的,非常确定。
-
试试
await usbStream.cancel(); -
@dev-aentgs 是的,有来自连接的数据。关闭对话后,我就不需要收听数据了。
标签: flutter dart dart-stream