在 flutter 中取消 StreamSubscription

Cancelling a StreamSubscription in flutter

我有以下流订阅

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

您必须等待订阅取消,所以这样做:

await usbStream.cancel();