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