Ответ
В Android есть три типа сервисов по способу запуска:
- Started Service – запускается через
startService(), работает в фоне, пока не остановится явно (stopSelf()илиstopService()). Пример:
val intent = Intent(this, MyService::class.java)
startService(intent)
- Bound Service – привязывается к компоненту через
bindService(), работает только пока есть активные клиенты. Пример:
val connection = object : ServiceConnection {
override fun onServiceConnected(name: ComponentName?, service: IBinder?) { /* ... */ }
override fun onServiceDisconnected(name: ComponentName?) { /* ... */ }
}
bindService(intent, connection, Context.BIND_AUTO_CREATE)
- Foreground Service – особый тип Started Service, требует уведомления (Notification) для пользователя. Обязателен для долгих фоновых задач (API 26+).
Важно: сервис может быть одновременно Started и Bound.