Я хочу получать местоположение каждые 15 секунд, и все в порядке
Не совсем.
Во-первых, нет никакой гарантии, что вы вообще сможете определить местоположение. Например, сигналы GPS не всегда доступны в помещении или под землей.
Во-вторых, нет никакой гарантии, что вы будете получать новое исправление местоположения каждые 15 секунд. Например, устройство может не двигаться.
В-третьих, на Android 8.0 + , вы не будете получать исправления местоположения где-либо близко к этому часто, если только ваше приложение не на переднем плане.
но в режиме ожидания (глубокий сон) мой обработчик не работает, в любом случае?
Шаг # 1: Надеюсь, что пользователь добавит ваше приложение в белый список оптимизации батареи
Шаг № 2: Использование службы переднего плана
Шаг № 3: Запросить обновление местоположения каждые 15 секунд (например, requestLocationUpdates()
на LocationManager
)
Шаг # 4: используйте частичный WakeLock
, чтобы оставить устройство включенным (даже если экран выключен)
Шаг № 5: Надеюсь, что пользователи не убьют вас за такой серьезный разряд батареи