Услуги
Служба - это компонент приложения, который может выполнять длительные операции в фоновом режиме и не предоставляет пользовательский интерфейс. Другой компонент приложения может запустить службу, и он будет продолжать работать в фоновом режиме, даже если пользователь переключается на другое приложение. Кроме того, компонент может связываться со службой для взаимодействия с ним.
Когда использовать?
Задача без пользовательского интерфейса, но не должна быть слишком длинной. Используйте потоки в сервисе для длинных задач.
Долгое задание в целом.
Триггер: Вызов метода onStartService ()
Инициируется с: Любая тема
Работает на: Основной поток процесса его размещения. Служба не создает свой собственный поток и не запускается в отдельном процессе (если не указано иное)
Ограничения / Недостатки: Может блокировать основной поток
AsyncTask
AsyncTask обеспечивает правильное и простое использование потока пользовательского интерфейса. Этот класс позволяет выполнять фоновые операции и публиковать результаты в потоке пользовательского интерфейса без необходимости манипулировать потоками и / или обработчиками. Асинхронная задача определяется вычислением, которое выполняется в фоновом потоке и результаты которого публикуются в потоке пользовательского интерфейса.
Когда использовать?
Небольшая задача, связанная с основным потоком
Для параллельных задач используйте несколько экземпляров ИЛИ исполнителя
Дисковые задачи, которые могут занять более нескольких миллисекунд
Триггер: Вызов метода execute ()
Инициируется с: Основная тема
Работает на: Рабочий поток. Тем не менее, методы промежуточного потока могут быть вызваны для публикации прогресса.
Ограничения / Недостатки:
- Один экземпляр может быть выполнен только один раз (следовательно, не может выполняться в цикле)
- Должен быть создан и выполнен из основного потока
Ссылка Ссылка