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

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

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

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

2 ответа

Решение

Вы должны использовать runOnUiThread() когда вы хотите обновить свой интерфейс из не-пользовательского потока. Например, если вы хотите обновить свой пользовательский интерфейс из фоновой темы. Вы также можете использовать 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, /questions/32328697/android-runonuithread-i-asynctask эта ссылка может помочь вам

Другие вопросы по тегам