Android: сервис теряет фокус датчика при закрытии активности - PullRequest
0 голосов
/ 04 мая 2018

Я создаю приложение, в котором фоновый сервис выполняет какие-то определенные действия. В настоящее время я использую простой Сервис с прикрепленным SensorEventListener, чтобы зарегистрировать движение телефона и выполнить действие, которое я хотел, чтобы он выполнял. Я также использую (необязательный) wakelock без каких-либо ограничений по времени (но он отключается, когда служба прекращается), чтобы гарантировать, что служба всегда доступна. Я использовал START_REDELIVER_INTENT, чтобы обеспечить перезапуск, когда действие прекращает его, когда пользователь останавливает его (регулярно с помощью кнопки ome). Теперь к моей проблеме: когда я прекращаю действие, служба прерывается, но только иногда перезапускается (я не знаю, перезапускается ли она или просто не вызывается ее замена датчика. Я подозреваю, что последний, но я точно не знаю, потому что я только помещаю простой Sysout в Sensoraged метод для тестирования).

Есть ли лучший и более эффективный способ достижения моей цели (например, startForeground) и как я могу обеспечить постоянное получение сенсорданных после прекращения активности?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

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

0 голосов
/ 04 мая 2018

Службы, которые должны работать непрерывно, должны запускаться с startForeground().

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

...