diff --git a/lib/mobile/file_downloader.dart b/lib/mobile/file_downloader.dart index ee87d081..8b30ffb6 100644 --- a/lib/mobile/file_downloader.dart +++ b/lib/mobile/file_downloader.dart @@ -57,12 +57,17 @@ class FileDownloader extends itf.FileDownloader { } } - DownloadEvent.listenDownloadComplete() - ..onData(onDownloadComplete) - ..onError((e, stackTrace) { - completer.completeError(e, stackTrace); - }); - await completer.future; + StreamSubscription? subscription; + try { + subscription = DownloadEvent.listenDownloadComplete() + ..onData(onDownloadComplete) + ..onError((e, stackTrace) { + completer.completeError(e, stackTrace); + }); + await completer.future; + } finally { + subscription?.cancel(); + } return uri; } on PlatformException catch (e) { switch (e.code) {