一、看到别人app有这么一个runOnUiThread 函数用法。
二、在Android中,runOnUiThread
是一个非常重要的方法,它的作用是让一个Runnable对象在主线程(UI线程)上运行。在Android中,主线程是负责更新UI的线程,因此,任何需要更新UI的操作都需要在主线程上执行。
例如,如果你在一个后台线程中获取了一些数据,然后你想要将这些数据显示在UI上,你就需要使用 runOnUiThread
方法将更新UI的操作放在主线程上执行。以下是一个例子:
new Thread(new Runnable() {
@Override
public void run() {
// 在后台线程中获取数据
final String data = getDataFromServer();
// 使用 runOnUiThread 方法将更新UI的操作放在主线程上执行
runOnUiThread(new Runnable() {
@Override
public void run() {
// 在主线程中更新UI
textView.setText(data);
}
});
}
}).start();
在这个例子中,我们在一个新的线程中获取数据,然后使用 runOnUiThread
方法将更新UI的操作放在主线程上执行。
需要注意的是,如果你已经在主线程中,你可以直接更新UI,无需使用 runOnUiThread
方法。此外,如果你尝试在主线程之外的线程中直接更新UI,Android会抛出一个 android.view.ViewRootImpl$CalledFromWrongThreadException
异常。
runOnUiThread(() -> {
// 在主线程中更新UI
textView.setText(data);
});