将 FLutter 升级到3.0.0后,我在使用computeisolate时收到此错误,因为我知道我已经在main.dart中初始化了:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
Run Code Online (Sandbox Code Playgroud) 我正在使用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)