gpt4 book ai didi

java - Android:确保 UI 操作在 UI 线程上完成的最佳实践

转载 作者:行者123 更新时间:2023-12-02 03:21:01 25 4
gpt4 key购买 nike

我遇到了需要从两个不同线程执行一些相同 UI 操作(比方说显示 Toast 消息)的情况。不同之处在于,第一个线程是 Activity 的 UI 线程,另一个线程是我开始运行一些后台进程的单独线程。问题是,确保显示 Toast 消息的代码始终从 UI 线程运行的最佳实践是什么。我在这里看到两种可能性。

我们有一个函数应该显示测试消息,例如

private void showToast() {
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}

每次我们调用此方法时,我们都会确保必须在 UI 线程上调用它,我们可以在调用 showToast()< 的地方使用 runOnUiThread()/.

另一个选项是确保显示 Toast 的代码在方法 showToast() 本身内的 UI 线程 上运行。像这样的事情:

private void showToast() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
});
}

哪种是首选做法?为什么?

最佳答案

使用第二个选项。如果您已经在 UI 线程上,则该操作将在相同的上下文中执行。 Reference

关于java - Android:确保 UI 操作在 UI 线程上完成的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39615025/

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