Как сделать так, чтобы служба, работающая при закрытии Приложения, не была уничтожена? - PullRequest
0 голосов
/ 01 октября 2019

Я занимаюсь разработкой фитнес-приложения в рамках своей дипломной работы и хочу отслеживать количество шагов, даже когда приложение полностью закрыто. Для этого я в настоящее время запускаю сервис, который использует встроенные датчики «Счетчик шагов» и «Детектор шагов». После некоторого тестирования я обнаружил, что иногда моя Служба убивается и больше не отслеживает предпринятые шаги. Я оставил телефон на своем столе на ночь и гулял по утрам, затем открыл приложение, а утренние шаги не отслеживались, тогда как при закрытии приложения и немедленном начале ходьбы отслеживание шагов все еще работает.

  • Есть ли способ убедиться, что моя служба не будет убита?

  • Решит ли использование службы Foreground мою проблему иЕсть ли альтернативы использованию службы переднего плана?

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Foreground Service - единственный способ убедиться, что служба не будет убита.

Причина этого в том, что служба переднего плана всегда показывает пользователю уведомление и может быть убита пользователем, если он этого хочет, это особенно важно, если вы хотите точно знать, что работает на вашем устройстве,

Все предыдущие методы создания постоянно работающих сервисов устарели, начиная с Android 9, когда была введена новая политика конфиденциальности.

0 голосов
/ 01 октября 2019

Как правило, вам нужно поддерживать работу сервиса в фоновом режиме. Вот обходной путь для достижения этой

https://stackoverflow.com/a/58162451/7579041

ссылки выше, полезной для устройств со стандартным ПЗУ и пользовательских ПЗУ, таких как OnePlus,OPPO, VIVO и т. Д.

Я надеюсь, это поможет вам

...