В чем разница между Started Service и Bound Service

«В чем разница между Started Service и Bound Service» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Started Service запускается через startService() и работает независимо от компонента, который его вызвал (даже если вызывающий компонент уничтожится). Подходит для длительных операций (например, загрузка файла).

Bound Service связывается с компонентом через bindService() и работает только пока есть хотя бы один привязанный клиент. Используется для межпроцессного взаимодействия (IPC).

Пример Started Service:

startService(Intent(this, MyService::class.java))

Пример Bound Service:

bindService(intent, connection, Context.BIND_AUTO_CREATE)

Можно комбинировать оба подхода - сервис может быть одновременно started и bound.