gpt4 book ai didi

Flutter:如何等待android平台 channel 函数完成并返回结果

转载 作者:行者123 更新时间:2023-12-05 02:56:36 25 4
gpt4 key购买 nike

使用 AWS 开发工具包在 Android 上创建用于文件上传的平台 channel 。现在我想在后台等待上传完成并返回结果的状态。

MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result ->
if (call.method == "uploadToAWS") {
new DoUpload().execute();

// how to await here ?
result.success(true);
} else {
result.notImplemented()
}
}

最佳答案

  1. 与其等待,不如移除“result.success(true);”从那里声明并简单地将“结果”对象分配给您自己的“MethodChannel.Result”类型的对象。

  2. 然后使用它从任何地方执行其“成功”、“错误”或“notImplemented”方法,如下例所示。

    public class Activity extends FlutterActivity {

    private MethodChannel.Result myResult;

    new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
    .setMethodCallHandler(
    (call, result) -> {
    myResult = result;
    }
    );

    private void myCustomMethod {

    myResult.success(yourData);

    }

    }

现在您可以在类中的任何位置使用这些 myResult.success()、myResult.error() 方法。

关于Flutter:如何等待android平台 channel 函数完成并返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60294547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com