Ответ
Система может перезапустить Service в следующих случаях:
-
Нехватка памяти – если система убивает процесс из-за нехватки ресурсов, сервис с
START_STICKYилиSTART_REDELIVER_INTENTбудет перезапущен автоматически. -
Возврат из onStartCommand() – если сервис возвращает
START_STICKY, система попытается пересоздать его после смерти процесса. Если возвращаетSTART_REDELIVER_INTENT, то перезапустит с последним интентом. -
Явный вызов startService() – если сервис был остановлен, но снова вызван через
startService().
Пример:
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_STICKY // или START_REDELIVER_INTENT
}