Сервис в Android — это компонент приложения, который может выполнять долговременные операции в фоновом режиме или предоставлять функциональность другим приложениям без пользовательского интерфейса.
Отличия от Activity:
Типы сервисов:
startService(). Работает в фоновом режиме, пока явно не остановлен (stopService() или stopSelf()). Если приложение убито системой, сервис может быть перезапущен в зависимости от возвращаемого значения onStartCommand().bindService(). Предоставляет интерфейс для взаимодействия (IPC - inter-process communication). Живёт, пока есть хотя бы один связанный компонент.Жизненный цикл Started сервиса:
onCreate()onStartCommand()onBind() (если вызывался bindService())onUnbind() (если все клиенты отвязались)onDestroy()Жизненный цикл Bound сервиса:
onCreate()onBind()onRebind() (если клиент привязался после onUnbind)onUnbind()onDestroy()Foreground Service: Это особый тип Started сервиса, который выполняется на переднем плане и виден пользователю через уведомление в статус-баре. Используется для задач, которые пользователь должен знать, что они выполняются (например, воспроизведение музыки, отслеживание местоположения). Требует вызова startForeground().
Пример создания простого сервиса:
kotlin
Регистрация сервиса в AndroidManifest.xml:
xml
Запуск сервиса из Activity:
kotlin
Для более сложных фоновых задач рекомендуется использовать WorkManager, который обеспечивает гарантию выполнения задач, учитывает ограничения системы (Doze, App Standby) и поддерживает различные типы ограничений (сеть, заряд батареи и т.д.). WorkManager часто является предпочтительной альтернативой сервисам для отложенных и надежных фоновых операций.