Java Android Pass Function в качестве аргумента для запускаOnUiThread - PullRequest
0 голосов
/ 19 января 2019

Я не эксперт по 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 голосов
/ 19 января 2019

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

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

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

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

runOnMain(myFunction);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...