Difference between UI Thread and Worker Thread in Android?

前端 未结 2 1080
时光取名叫无心
时光取名叫无心 2020-12-28 14:45

I have read documents about Thread on Android, but I could not find differences between UI thread and Worker Thread. Can someone just give me more example about it?

相关标签:
2条回答
  • 2020-12-28 15:20

    The Ui thread is the thread that makes any changes required for the ui.

    A worker thread is just another thread where you can do processing that you dont want to interupt any changes happening on the ui thread

    If you are doing large amounts of processing on the ui thread while a change to the ui is happening the ui will freeze until what ever you have running complete.

    0 讨论(0)
  • 2020-12-28 15:29

    It's partly terminology. People use the word "worker" when they mean a thread that does not own or interact with UI. Threads that do handle UI are called "UI" threads. Usually, your main (primary) thread will be the thread that owns and manages UI. And then you start one or more worker threads that do specific tasks. These worker threads do not modify the UI directly.

    for example, if we need to change UI component like change text in Text View, show toast etc , show alert then we need to use UI thread bcoz thread is just process

    we can access UI in thread using runOnUiThread method

    example of runOnUiThread: use this method inside thread

    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();
    
    0 讨论(0)
提交回复
热议问题