Когда нам может понадобиться использовать runOnUiThread в приложении Android?

У меня есть образец кода, который использует эту функцию для запуска потока runOnUiThread . Почему и когда нам нужно его использовать?

редактировать

Как насчет использования класса AsyncTask , какие pros и cons ?

Solutions Collecting From Web of "Когда нам может понадобиться использовать runOnUiThread в приложении Android?"

Вы должны использовать runOnUiThread() когда хотите обновить свой пользовательский интерфейс из runOnUiThread() с UI. Например, если вы хотите обновить свой пользовательский интерфейс из фонового потока. Вы можете также использовать Handler для того же самого.

Из Документов –

Запускает указанное действие в потоке пользовательского интерфейса. Если текущий поток является потоком пользовательского интерфейса, то действие выполняется немедленно. Если текущий поток не является потоком пользовательского интерфейса, действие отправляется в очередь событий потока пользовательского интерфейса.

Синтаксис –

  Activity_Name.this.runOnUiThread(new Runnable() { @Override public void run() { // your stuff to update the UI } }); 

Обновить –

 AsyncTask - 

Если вы хотите выполнить какую-либо Network operation или что-нибудь, что блокирует ваш пользовательский интерфейс, в этом случае лучше всего использовать AsyncTask. Существует несколько других способов выполнения тех же фоновых операций, что и для Service , IntentService также для выполнения фоновых операций. Использование AsyncTask поможет вам выполнить работу с пользовательским интерфейсом, а также не будет блокировать ваш пользовательский интерфейс до тех пор, пока не начнется фоновый режим.

Из Документов –

AsyncTask обеспечивает правильное и простое использование потока пользовательского интерфейса. Этот класс позволяет выполнять фоновые операции и публиковать результаты в потоке пользовательского интерфейса без необходимости манипулировать потоками и / или обработчиками.

Чтобы обновить userinterface из потока, вам нужно использовать runOnUiThread . Но использование asynctask лучше, чем использование runonuithread . Android-runonuithread-vs-asynctask, эта ссылка может помочь вам