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 и будете выполнять такие действия гораздо проще:)