Java Android Pass Function作为runOnUiThread的参数

时间:2019-01-19 12:44:32

标签: java android 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 我希望我自己解释一下。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以像这样在Runnable块中添加函数

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

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

最后,调用您的方法:

runOnMain(myFunction);

我希望您会尽快切换到Kotlin并轻松执行此类操作:)