Я прочитал документы о Thread на Android, но не смог найти различий между потоком пользовательского интерфейса и Worker Thread. Может ли кто-нибудь просто дать мне больше примеров об этом?
Разница между потоком пользовательского интерфейса и рабочим потоком в Android?
Ответ 1
Нить Ui - это поток, который вносит изменения в ui.
Рабочий поток - это еще один поток, где вы можете выполнять обработку, которую вы не хотите перехватывать любые изменения, происходящие в потоке ui.
Если вы делаете большие объемы обработки в потоке ui, пока происходит изменение на ui, ui замерзнет до тех пор, пока у вас не закончится выполнение.
Ответ 2
Это отчасти терминология. Люди используют слово "рабочий", когда они означают поток, который не владеет или не взаимодействует с пользовательским интерфейсом. Темы, которые обрабатывают интерфейс, называются потоками "UI". Обычно основной (основной) поток будет потоком, который владеет и управляет пользовательским интерфейсом. И затем вы запускаете один или несколько рабочих потоков, которые выполняют конкретные задачи. Эти рабочие потоки не изменяют интерфейс напрямую.
например, если нам нужно изменить компонент пользовательского интерфейса, например, изменить текст в текстовом виде, показать тост и т.д., показать предупреждение, тогда нам нужно использовать поток пользовательского интерфейса. bcoz thread - это просто процесс
мы можем получить доступ к пользовательскому интерфейсу в потоке с помощью метода runOnUiThread
пример 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();