gpt4 book ai didi

java - 将函数作为参数传递以在 UI 线程上启动

转载 作者:行者123 更新时间:2023-12-02 08:47:15 27 4
gpt4 key购买 nike

我实际上正在尝试在 Android 上开发一个函数来计算一些东西,但是,这个方法可以(或不!)从任务调用。这个方法必须在完成的每一步中进行Toast,我找到了方法.runOnUiThread(Runnable ...)。直接写在我的函数中。

这是可行的,但是如果将来有人不想要 Toasts 并且更喜欢更新加载栏怎么办?这就是为什么我想知道是否可以向我的函数传递一个可以在 UI 线程上运行的方法,以及对于我的函数的用户来说尽可能简单的方法?也许有一种有效的 lambda 表达式语法?

提前致谢。

最佳答案

有一些方法:

您已经提到了第一种方式:

activity.runOnUniThread(Runnable runnable);


您也可以使用以下方法:

view.post(Runnable runnable);

或者:

view.postDelayed(Runnable runnable, int delay);

示例:

textView.post(r -> { 
Log.e("Activity" ,"Text");
});

只需将代码写入可运行的文件中即可。您甚至可以预定义它:

Runnable r = new Runnable(r -> {
// make your stuff
});
// ...
button.post(r);


最后一个选项:处理程序

Handler handler = new Handler();
// You know the scheme :
handler.post(r);
// or
handler.postDelayed(r, 1000);

关于java - 将函数作为参数传递以在 UI 线程上启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60995375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com