Сервис в 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
Сервис в 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
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.