Обновление: Похоже, в документации по Android теперь есть соответствующие пояснения, см. http://developer.android.com/reference/android/app/Service.html#WhatIsAService.
Оригинальный ответ:
В Android,Service
не обеспечивает одновременного выполнения («запуск в фоновом режиме»).На самом деле это скорее простой Java-объект, который просто создается (и управляется) через систему Android, а не через ваше приложение через new
.
Поэтому самое важное свойство службы не связано с отсрочкой рабочей нагрузки;это может быть достигнуто с помощью простых потоков.
Что делает сервисный объект особенным, так это то, что он зарегистрирован в системе Android как сервис .Это даст системе знать, что этот объект предоставляет какую-то услугу, и должен оставаться в живых как можно дольше или до его остановки.Обычные потоки приложений не имеют этого специального значения для системы Android и будут прерваны гораздо более щедро по усмотрению системы.
Так что, если вам нужны некоторые фоновые действия, которые будут выполняться только тогда, когда ваше приложение / Activity
активен, поток может делать то, что вам нужно.
Если вам нужен компонент, который сохраняет активность не будет очищен, даже если через некоторое время система Android решит удалитьваш Activities
из памяти, вы должны пойти на сервис или даже на «приоритетный сервис», который считается еще более важным для системы и еще менее вероятно, что он будет прерван для восстановления ресурсов.
Конечнопри желании можно также создать объект Service
, содержащий один или несколько экземпляров Thread
, которые могли бы жить столько же времени, сколько сам объект Service
.
Редактировать:
О, плюс: услуга - это, конечно, способ , если вы хотите предоставлять некоторые услуги другим приложениям, которые могут «привязываться» только к услуге.