Android中的UI线程和工作线程之间的区别?

时间:2015-08-07 08:14:58

标签: android

我已经阅读了有关Android上线程的文档,但我找不到UI线程和工作线程之间的差异。有人可以给我更多关于它的例子吗?

2 个答案:

答案 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();