首页 > 解决方案 > Java Android 传递函数作为 runOnUiThread 的参数

问题描述

我不是 Java 专家,我想了解如何传递必须使用 runOnUiThread 执行的函数

类似的东西

public void runOnActivity(FUNCTION) {
    mActivity.runOnUiThread(
            new Runnable() {
                @Override
                public void run() {
                    FUNCTION();
                }
            }
    );
}

接着

public void reload(){
    runOnActivity(mContext.reload);
}

甚至更好,因为它们应该始终被称为 mContext 方法:

public void runOnActivity(METHOD_NAME) {
    mActivity.runOnUiThread(
            new Runnable() {
                @Override
                public void run() {
                    mContext.METHOD_NAME();
                }
            }
    );
}

接着

public void reload(){
    runOnActivity("reload");
}

所有函数总是返回 VOID 我希望我自己解释一下。

谢谢

标签: javaandroidandroid-runonuithread

解决方案


您可以Runnable像这样将您的功能包含在块中

Runnable myFunction = () -> System.out.println("some function");

void runOnMain(Runnable runnable) {
  mActivity. runOnUiThread {
    runnable.run();
  }
}

最后,调用你的方法:

runOnMain(myFunction);

我希望,您很快就会切换到 Kotlin 并更轻松地执行此类操作 :)


推荐阅读