You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Maui Android平台IExecutor接口实现方案咨询

在.NET Maui中正确实现Android的IExecutor接口

你不需要手动实现那些Jni相关的属性和方法——继承Java.Lang.Object后,这些方法已经有默认的正确实现了,你的代码里手动重写并抛出NotImplementedException才是导致运行时异常的原因。

只需要实现IExecutor接口要求的Execute方法即可,其他Jni相关的成员完全不用管。根据你的需求,Execute方法可以选择在主线程(UI线程)或者后台线程执行传入的IRunnable命令:

正确的实现代码

#if ANDROID
using Java.Lang;
using Java.Util.Concurrent;
using Microsoft.Maui.ApplicationModel;

namespace CellularSignal1
{
    public class MauiExecutor : Java.Lang.Object, IExecutor
    {
        // 只需要实现IExecutor的核心方法
        public void Execute(IRunnable command)
        {
            // 选项1:在UI主线程执行(适合更新UI的操作)
            MainThread.BeginInvokeOnMainThread(() => command.Run());

            // 选项2:在后台线程执行(适合耗时操作)
            // Task.Run(() => command.Run());
        }
    }
}
#endif

说明

  1. 移除了所有不必要的Jni相关属性和方法重写,这些由Java.Lang.Object底层自动处理,不需要手动实现。
  2. Execute方法的两种实现方式:
    • 如果你的Android函数需要在UI线程执行操作,选择MainThread.BeginInvokeOnMainThread,避免跨线程UI访问异常。
    • 如果是耗时的后台操作,用Task.Run放到线程池执行。

这样实现的MauiExecutor就可以正常传递给需要IExecutor参数的Android平台函数,不会再抛出未实现异常。

内容的提问来源于stack exchange,提问作者rickster26ter1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:23:18