Med*_*dCh 1 dart dart-isolates flutter flutter-downloader
我正在使用flutter_downloader包通过我的应用程序下载文件。进度通知效果很好。但我的ReceivePort没有监听进度。
final ReceivePort port = ReceivePort();
@override
void initState() {
super.initState();
IsolateNameServer.registerPortWithName(
port.sendPort, 'downloader_sendport');
port.listen((dynamic data) async {
log('data: $data'); // don't work
});
FlutterDownloader.registerCallback(downloadCallback);
}
@pragma('vm:entry-point')
static void downloadCallback(
String id, DownloadTaskStatus status, int progress) {
log("downloadCallback => $id, $status, $progress"); // works
final SendPort? send =
IsolateNameServer.lookupPortByName('downloader_sendport');
send?.send([id, status, progress]);
}
Run Code Online (Sandbox Code Playgroud)
需要SendPort接收一个原始对象 ( int),而不是一个DownloadTaskStatus对象:
解决方案:调用时更改status为原语:status.valuesend(...)
send?.send([id, status.value, progress]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
775 次 |
| 最近记录: |