2012-02-24 2 views

ответ

20

Темы - общие задачи обработки, которые могут выполнять большинство вещей, но одна вещь, которую они не могут сделать, это обновить интерфейс.

С другой стороны, обработчики привязаны к потокам, которые позволяют вам связываться с потоком пользовательского интерфейса (обновлять пользовательский интерфейс).

Так, например, покажите тост или обновите индикатор выполнения через сообщение (Runnable), отправленное в обработчик, но вы не можете, если вы запустите этот runnable как поток.

С обработчиком вы также можете иметь такие вещи, как MessageQueuing, планирование и повторение.

Я еще не сталкивался с ситуацией, когда мне нужна была нить в андроиде.

В основном я использую комбинацию AsyncTasks и Handlers.

Обработчики для вышеупомянутых задач.

AsyncTasks для загрузки/выборок данных и опроса и т.д.

Вы можете прочитать статью разработчиков здесь «Painless Threading» для получения дополнительной резьбы в андроиде.

Исправление: Каждый экземпляр Handler связан с одним потоком и очереди сообщений этого потока. Они не являются нитями от своего имени. как описано here.

+3

Хендлеры не являются нитками – Selvin

+0

Правда, исправлено – MahdeTo

2

Нить определяет процесс, выполняющийся. Как у вас есть основной (поток пользовательского интерфейса) в android. и все остальные потоки выполняются в фоновом режиме (параллельно).

Handler совершенно другой, это как инициирование задачи, определенной в обработчике ..

Чтобы очистить ваше замешательство, и выполнять нарезание резьбы в андроида вы должны прочитать: http://android-developers.blogspot.com/2009/05/painless-threading.html

и я хотел бы предложить AsyncTask вместо использования Thread во всех случаях.

0

Почему мы используем обработчик с резьбой:

Когда мы устанавливаем приложение в Android, то это создать поток для этого приложения под названием MAIN UI Thread, все мероприятия выполняются в этом потоке, на андроид однопоточной модели правило мы не можем получить доступ к элементам пользовательского интерфейса (растровому изображению, текстуре и т. д.) непосредственно для другого потока, определенного внутри этого действия.

Поэтому, если вы хотите получить доступ к основным элементам интерфейса UI другим потоком, мы будем использовать обработчики.

Смежные вопросы