Подход, который вы используете, выглядит достаточно всеобъемлющим, когда речь идет об освобождении ресурсов и полном закрытии приложения. Хотя я чувствую, что это немного преувеличено, но если это то, что требует ваш вариант использования, то никаких проблем. Вы можете проверить это SO для получения дополнительной информации.
У меня есть комментарий к следующей строке
остановка фонового запуска из приложения, не закрытие служб
android.os.Process.killProcess(android.os.Process.myPid());
Этот метод завершит процесс с заданным PID. Если ваши службы работают с этим PID, они тоже будут убиты.
Начиная с Android O, было наложено несколько ограничений на фоновое выполнение, из-за которых нельзя поддерживать службы в фоновом режиме. Когда ваше приложение закрывается, ОС прекращает работу Служб, как если бы вы позвонили stopSelf()
. Как следствие, вы не сможете поддерживать свои службы в живых.