Какие знаешь Services по типу запуска

«Какие знаешь Services по типу запуска» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android есть три типа сервисов по способу запуска:

  1. Started Service – запускается через startService(), работает в фоне, пока не остановится явно (stopSelf() или stopService()). Пример:
val intent = Intent(this, MyService::class.java)  
startService(intent)  
  1. 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)  
  1. Foreground Service – особый тип Started Service, требует уведомления (Notification) для пользователя. Обязателен для долгих фоновых задач (API 26+).

Важно: сервис может быть одновременно Started и Bound.