Ответ
Да, Service может одновременно быть started (через startService()) и bound (через bindService()). В этом случае сервис будет работать, пока есть хотя бы один из этих компонентов:
- Пока есть активные клиенты (bound) ИЛИ
- Пока был вызван
startService()(даже безstopSelf()илиstopService())
Пример:
// Запуск сервиса (started)
startService(Intent(this, MyService::class.java))
// Привязка сервиса (bound)
bindService(
Intent(this, MyService::class.java),
connection,
Context.BIND_AUTO_CREATE
)
Сервис уничтожится только после:
- Все клиенты отвяжутся (
unbindService()) - Будет вызван
stopService()/stopSelf()(если былstarted)