【发布时间】:2019-12-04 07:22:26
【问题描述】:
我尝试使用 ovprogresshud (https://pub.dev/packages/ovprogresshud) 来显示下载进度。我使用 flutter_downloader (https://pub.dev/packages/flutter_downloader) 进行下载。
我尝试通过隔离更新进度,但收到错误消息。 (如果我在我的代码中直接调用 Progresshud.showWithStatus,在下载之前说,它可以工作)
我的代码:
ReceivePort _port = ReceivePort();
...
IsolateNameServer.registerPortWithName(
_port.sendPort, 'downloader_send_port');
_port.listen(
(dynamic data) {
String id = data[0];
DownloadTaskStatus status = data[1];
int progress = data[2];
if (status == DownloadTaskStatus.complete) {
} else if (status == DownloadTaskStatus.running) {
Progresshud.showWithStatus("%$progress Downloaded");
}
},
onDone: () {
checkIfDictionaryUnzipped(DBFilePath);
},
onError: (error) {},
);
我收到的错误:
Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'android.view.ViewParent android.view.ViewGroup.getParent()' on a null object reference, null)
E/flutter (29114): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter (29114): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33)
E/flutter (29114): <asynchronous suspension>
E/flutter (29114): #2 Progresshud.showWithStatus (package:ovprogresshud/progresshud.dart:18:27)
E/flutter (29114): <asynchronous suspension>
....
【问题讨论】:
标签: flutter dart download progress-bar dart-isolates