我已经阅读了有关Android上线程的文档,但我找不到UI线程和工作线程之间的差异。有人可以给我更多关于它的例子吗?
答案 0 :(得分:39)
Ui线程是对ui进行任何更改的线程。
工作线程只是另一个线程,您可以在其中进行处理,您不希望中断ui线程上发生的任何更改
如果你在ui线程上进行了大量的处理,而ui的更改正在发生,ui将会冻结,直到你运行完毕为止。
答案 1 :(得分:18)
这是部分术语。当人们指的是不拥有UI或与UI交互的线程时,人们使用“worker”这个词。处理UI的线程称为“UI”线程。通常,您的主(主)线程将是拥有和管理UI的线程。然后启动一个或多个执行特定任务的工作线程。这些工作线程不会直接修改UI。
例如,如果我们需要更改UI组件,如在文本视图中更改文本,显示吐司等,显示警报,那么我们需要使用UI线程bcoz线程只是进程
我们可以使用 runOnUiThread 方法访问线程中的UI
runOnUiThread示例:在线程
中使用此方法new Thread() {
@Override
public void run() {
//If there are stories, add them to the table
try {
// code runs in a thread
YourActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(context,"this is UI thread",0).show();
}
});
} catch (final Exception ex) {
Log.i("---","Exception in thread");
}
}
}.start();