Ответ
Сервис уничтожается в следующих случаях:
- stopSelf() – сервис сам вызывает этот метод.
- stopService() – активность или другой компонент останавливает сервис.
- Система убивает сервис – при нехватке памяти (если сервис не foreground).
В onDestroy() сервиса нужно освобождать ресурсы (отписываться от событий, закрывать соединения).
override fun onDestroy() {
super.onDestroy()
// Освобождение ресурсов
someManager.unregisterListener()
}
Важно:
- Started Service уничтожается после выполнения задачи (если не вызван startForeground()).
- Bound Service уничтожается, когда все клиенты отвязываются.