How can I implement a Flutter function to asynchronously pick an image file, using isolates for background processing
Future<File?> pickImages() async {
final token = RootIsolateToken.instance;
BackgroundIsolateBinaryMessenger.ensureInitialized(token!);
final receiverPort = ReceivePort();
try {
await Isolate.spawn(_pickImage, receiverPort.sendPort);
receiverPort.listen((message) {
return message;
});
} catch (e) {
print('Error picking image: $e');
}
return null;
}
Future _pickImage(SendPort sendPort) async {
FilePickerResult? result =
await FilePicker.platform.pickFiles(allowMultiple: false);
if (result != null) {
List<File> files = result.paths.map((path) =>
File(path!)).toList();
File file = files[0];
// return file;
sendPort.send(file);
} else {
// User canceled the picker
}
}
doesnt work!