Ручка onMessageReceived() и onTokenRefresh(), даже если приложение не работает

У меня есть приложение с двумя службами:

MessagingService extends FirebaseMessagingService

и

InstanceIDService extends FirebaseInstanceIdService

В файле AndroidManifest.xml объявлены. Проблема в том, что когда мой процесс приложения принудительно закрывается, службы также убиваются.

Я бы хотел, чтобы их не убили. Я слышал о знаке START_STICKY для класса Service, но я не могу переопределить метод onStartCommand() в этих сервисах, чтобы вернуть этот флаг...

Ответ 1

Чтобы ответить на комментарии, я не нашел никакого "решения" для моей проблемы, потому что это не проблема. Если пользователь хочет закрыть мое приложение, он имеет право на.

Так как мой метод onMessageReceived() принадлежит моему MessagingService в моем приложении, если приложение закрыто пользователем пользователем, ни приложение, ни служба не будут перезагружены.

Как сказал Вэйши Цзэн в комментариях, "принудительное закрытие настроек" останавливает все мои приложения, включая службы, поэтому уведомление получено службами Google Play, но мое приложение здесь не для просмотра. Тогда метод onMessageReceived() не выполняется. Однако служба не закрывается при закрытии "салфетки".

В конце концов, я не хотел найти никакого обходного пути, так как это противоречило бы выбору пользователя.

Смотрите здесь.