Обработчик против потока - PullRequest
11 голосов
/ 23 июня 2010

Я хотел бы знать, раз и навсегда.Я читал во многих местах.Когда я хочу сделать «длительные операции», я должен использовать Handler.

Но я не понимаю, почему?Все мои «длительные операции» я окружаю обычными нитями, и все работает отлично.

Зачем мне использовать Handler для этого?

Единственный раз, когда мне пришлось использовать Handler, было, когда мне приходилось планировать какую-то задачу (postDelayed)

Есть ли какая-то главная идея, по которой я скучаю по handlers (когда мне действительно стоит ее использовать)?Или, может быть, нет никакой разницы?

Ответы [ 2 ]

16 голосов
/ 23 июня 2010

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

1 голос
/ 16 ноября 2011

Это не может быть просто возвращением вас в поток пользовательского интерфейса, так как runOnUiThread (Runnable) делает это очень хорошо.Я подозреваю, что это скорее облегчает Android управление потоками и другими ресурсами, которые не должны находиться вне контекста действия, и что исключения «активность просочилась ...» сообщают вам, когда это произошло.

...