При выполнении определенных заданий в Android настоятельно рекомендуется использовать Handler, потому что:
В Android можно обновлять только представления в исходном потоке, т. Е. В потоке, в котором они были созданы, в противном случае приложение можетбросить исключение, говорящее
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Обработчики в Android связываются с потоком, в котором они созданы.Каждый экземпляр обработчика связан с одним потоком и очередью сообщений этого потока.Когда вы создаете новый обработчик, он привязывается к потоку / очереди сообщений потока, который его создает - с этого момента он будет доставлять сообщения и исполняемые файлы в эту очередь сообщений и выполнять их по мере их выхода из сообщения.очередь.Таким образом, обработчики являются самыми безопасными в Android.
В то время как Сервисы, вот кусок кода из http://developer.android.com/reference/android/app/Service.html
Что такое Сервис?
Наибольшая путаница вКласс обслуживания фактически вращается вокруг того, чем он не является:
Служба не является отдельным процессом.Сам объект Service не подразумевает, что он работает в своем собственном процессе;если не указано иное, он выполняется в том же процессе, что и приложение, частью которого он является.
Служба не является потоком.Это не средство само по себе выполнять работу из основного потока (во избежание ошибок Application Not Responding).Таким образом, сама служба на самом деле очень проста, предоставляя две основные функции:
Средство, позволяющее приложению сообщать системе о том, что оно хочет делать в фоновом режиме (даже если пользователь не взаимодействует напрямую сприложение).Это соответствует вызовам Context.startService (), которые просят систему запланировать работу для службы, которая будет запущена до тех пор, пока служба или кто-либо еще явно не остановит ее.
Средство для приложения, чтобы показать некоторые изего функциональность для других приложений.Это соответствует вызовам Context.bindService (), который позволяет установить давнюю связь со службой для взаимодействия с ней.
И, наконец, Потоки, используются потоки
для выполнения некоторых тяжелых функций, не связанных с просмотром, некоторых сложных вычислений, таких как синтаксический анализ и т. д., чтобы он не блокировал пользовательский интерфейс и безопасно выполнял всю работу ...