Приложение выходит из строя, когда служба хочет остановить - PullRequest
0 голосов
/ 18 сентября 2018

Я запустил такой сервис:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    context.startForegroundService(intent);
} else {
    context.startService(intent);
}

Но когда я хочу остановить эту службу, я сталкиваюсь с ошибкой:

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6501)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Чтобы устранить эту ошибку, я попытался: 1. Использовано stopSelf(); в методе onDestroy (). 2. Использовано startForeground(0, new Notification()); в методе onCreate ().

Но ошибка все еще остается. Я также много искал на официальных сайтах StackOverflow и Android. Не могу найти подходящий ответ, чтобы решить мою проблему. Кстати, эта ошибка начинается с версии Android OREO.

1 Ответ

0 голосов
/ 18 сентября 2018

Как уже упоминалось здесь

"Android 8.0 представляет новый метод startForegroundService () для запуска нового сервиса на переднем плане. После того, как система создала сервис, приложениеУ вас есть пять секунд для вызова метода startForeground () службы для отображения видимого пользователю уведомления новой службы. Если приложение не вызывает startForeground () в течение определенного времени, система останавливает службу и объявляет приложение ANR. "

...