Остановить передний план службы Android - PullRequest
0 голосов
/ 01 июня 2018

Я работаю над приложением Android, в котором я создаю службу переднего плана .Ниже приведен код для удаления службы переднего плана:

private void stopForegroundService()
    {
        Log.d(TAG_FOREGROUND_SERVICE, "Stop foreground service.");
        if(downloadAsyncTask!=null) //to stop async task
            downloadAsyncTask.cancel(true);

        // Stop foreground service and remove the notification.
        stopForeground(true);

        // Stop the foreground service.
        stopSelf();
    } 

Я хочу остановить эту службу, когда пользователь убивает приложение из списка «Последние приложения» .У меня есть методы onDestroy() и onTaskRemoved() в классе обслуживания.stopForegroundService() вызывается из этих функций.

Когда пользователь убивает приложение из списка последних приложений, вызывается метод stopForegroundService(), но служба продолжает работать.Тем не менее, я могу остановить службу, когда асинхронная задача завершена.

У меня есть следующие вопросы:

  1. Как остановить службу, когда приложение удаляется из списка последних приложений?
  2. Возможно ли, что служба убита, но асинхронная задача продолжает выполняться?Если да, то как это исправить?

Буду признателен за любые предложения и мысли на эту тему.Спасибо.

РЕДАКТИРОВАТЬ:

Вызван метод stopForegroundService(), уведомление службы переднего плана удалено, но асинхронная задача не остановлена.Как это исправить?

1 Ответ

0 голосов
/ 06 декабря 2018

Как будто какой-то поток все еще не уничтожен должным образом?

ОБНОВЛЕНИЕ
Попробуйте добавить этот атрибут stopWithTask="true" в файл манифеста

<service
android:enabled="true"
android:name=".ExampleService"
android:exported="false"
android:stopWithTask="true" />

Пожалуйста, обратитесь к этому ответу.Надеюсь, это поможет
https://stackoverflow.com/a/53334788/10069542

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...