Когда Service уничтожается

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

Ответ

Сервис уничтожается в следующих случаях:

  1. stopSelf() – сервис сам вызывает этот метод.
  2. stopService() – активность или другой компонент останавливает сервис.
  3. Система убивает сервис – при нехватке памяти (если сервис не foreground).

В onDestroy() сервиса нужно освобождать ресурсы (отписываться от событий, закрывать соединения).

override fun onDestroy() {
    super.onDestroy()
    // Освобождение ресурсов
    someManager.unregisterListener()
}

Важно:

  • Started Service уничтожается после выполнения задачи (если не вызван startForeground()).
  • Bound Service уничтожается, когда все клиенты отвязываются.