Я пытаюсь запустить службу только в то время как на переднем плане, но для определения переднего плана я использую Activity.onStart, однако иногда это вызывается, когда приложение находится в фоновом режиме в соответствии с тем фрагментом кода, который выбрасывает java.lang.IllegalStateException : Запрещено запускать сервис. Намерение при запуске сервиса.
- конкретно, при запуске деятельности с выключенным экраном.
Кто-нибудь знает, что такое проверка?является?Как я могу «если» это, то есть мне нужно && onStart с некоторым processIsInForeground (), чтобы получить истинное onStart
Пока у меня есть
val appProcesses = activityManager.runningAppProcesses
if (appProcesses == null) return false
val thisProcess = appProcesses.firstOrNull { it.processName == packageName }
if (thisProcess == null) return false
val isProcessForeground == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND
Но это работает только как 90%время, иногда значение имеет значение IMPORTANCE_SERVICE, иногда IMPORTANCE_TOP_SLEEPING
Кроме того, в документах говорится, что API в основном только для отладки и т. д.