Как избежать уничтожения и перезапуска службы и процесса, когда приложение прокручивается вправо на экране «Обзор» (также известном как экран последних приложений)?

Я вижу свое приложение на следующем экране

https://i.stack.imgur.com/BbqqZ.jpg

Если я прокручиваю свое приложение вправо, я замечаю, что процесс и службы, связанные с приложением, уничтожаются.

  1. Как не убить процесс и сервисы при свайпе?
  2. Как сохранить службу (я использую IntentService, так что другое
    answer, упомянутый для аналогичного вопроса, не работает) работает, когда приложение смахивается вправо?
  3. Ответ упоминается здесь перезапускает (что означает, что служба не выполняет свою работу в течение нескольких секунд на этапе перезапуска) службу и процесс. Я хочу, чтобы сервис работал непрерывно без каких-либо падений. Как это сделать?

person sofs1    schedule 31.12.2016    source источник
comment
IntentServices не предназначены для длительного использования. Кроме того, почему вы пометили android-service-binding? IntentServices не предназначены для привязки.   -  person Yaroslav Mytkalyk    schedule 31.12.2016
comment
Я подумал, что android-service-binding может быть новым решением (полностью отказавшимся от Intent-сервисов) для моего варианта использования.   -  person sofs1    schedule 31.12.2016


Ответы (1)


Для этого вам нужно запустить службу в качестве службы переднего плана. См. здесь в разделе Запуск службы на переднем плане.

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

person Tharaka Devinda    schedule 31.12.2016
comment
Я прошел этот вариант. Спасибо. Но можно ли создать службу переднего плана без уведомления? - person sofs1; 31.12.2016
comment
в соответствии с этим: stackoverflow.com/questions/ 10962418/ это невозможно и не рекомендуется. - person Tharaka Devinda; 31.12.2016
comment
Я просто читал это. Мое приложение похоже на Facebook или Whatsapp, где, если сообщение отправлено, оно должно быть немедленно показано пользователю. Для этого приложение должно постоянно общаться с моим веб-сервером. Таким образом, служба, которая разговаривает с веб-сервером, всегда должна быть запущена и работать (не должно быть перезапуска - насильственное убийство пользователя в порядке). - person sofs1; 31.12.2016
comment
Я только что прочитал это reddit.com/r/androiddev/comments/1uqpwv / Я думаю, push-уведомления будут работать. Любые предложения по push-уведомлениям для моего варианта использования. - person sofs1; 31.12.2016