Обработчик против темы
Я хотел бы знать раз и навсегда. Я читал во многих местах. Когда я хочу выполнить некоторые "длительные операции", я должен использовать Handler
.
Но почему я не понимаю? Все мои "длительные операции" я окружаю с помощью обычных потоков, и он отлично работает.
Зачем использовать Handler
для этого?
Единственный раз, когда мне приходилось использовать Handler
, было, когда мне пришлось запланировать некоторую задачу (postDelayed
)
Есть ли какая-то основная идея, которую я пропустил? handlers
(Когда я действительно должен ее использовать)? Или, может быть, нет разницы?
Ответы
Ответ 1
A Handler позволяет вам общаться с потоком пользовательского интерфейса из фонового потока. Это связано с тем, что операции пользовательского интерфейса запрещены из фоновых потоков. Обратите внимание, что начиная с версии 1.5 класс AsyncTask значительно облегчает это.
Ответ 2
Это не просто попытка вернуть вас к потоку пользовательского интерфейса, так как runOnUiThread (Runnable) делает это очень красиво. Я подозреваю, что это больше упрощает для Android управление потоками и другими ресурсами, которые не должны жить вне контекста активности, и что исключения "Активность просочились..." говорят вам, когда это произошло.