Flutter的invokeMethod上有没有异步等待C++数据的解决方案?
目前,这是我使用 Flutter 从 C++ 中读取的方式:
final Uint8List result = await platform.invokeMethod(Common.MESSAGE_METHOD, {"message": buffer});
Kotlin 是这样处理的:
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result ->
if (call.method == MESSAGE_METHOD) {
val message: ByteArray? = call.argument<ByteArray>("message")
//... //response = Read something FROM C++
result.success(response)
由于这发生在主线程中,如果我花太多时间来回答,我会使 Flutter 的 UI 变慢。
是否有以异步方式获取 C++ 数据的解决方案?
我知道 Flutter 支持事件通道将数据从 C++ 发送回 Flutter。但是仅仅在 Flutter 端请求数据并等待它到达 Future 怎么样,这样我就可以有很多小部件在FutureBuilder准备好时解析某些东西?
THE END
二维码