Java Android Pass Function в качестве аргумента для запуска OnUiThread

Я не эксперт по 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 ответ

Вы можете включить свою функцию в Runnable блок как это

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

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

Наконец, вызовите ваш метод:

runOnMain(myFunction);

Надеюсь, вы скоро перейдете на Kotlin и будете выполнять такие действия гораздо проще:)

Другие вопросы по тегам