Как предотвратить сбой при перезапуске Android Forkgre ServiceAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как предотвратить сбой при перезапуске Android Forkgre Service

Сообщение Anonymous »

У меня есть служба переднего плана, и я начинаю его с: < /p>

Код: Выделить всё

context.startForegroundService(Intent(context, MyForegroundService::class.java))
В службе он использует start_sticky

Код: Выделить всё

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// do work...
startForeground(ID, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION)
return START_STICKY
}
< /code>
После того, как система убивает услугу (например, низкие ресурсы), она попытается воссоздать его позже «с фона». Здесь мы возникаем проблема для устройств Anroid 12+: 

[*] Если я позвоню в StartforeForeground () 
, это дает мне ForegryServiceStartNotAllowedException
Если я не называю Startforeforge () , он дает мне исключение, чтобы не начинать сервис на передней части 10 -й секунды , он дает мне исключение для того, чтобы не начинать сервис на передней части 10 -й секунды . /> < /ul>
Проще говоря, сервис будет разбиться, независимо от того, что вы делаете. Кажется, это недостаток дизайна Android. Кажется, единственный обходной путь - это использовать start_not_sticky и запланировать Workmanager на Ondestory () для выполнения меньшей части работы. Я думаю об этом правильно?

Подробнее здесь: https://stackoverflow.com/questions/795 ... nd-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»