У меня есть служба определения местоположения, которая работает в фоновом режиме и использует менеджер местоположения для отправки значений lat и long на мой сервер каждые 30 секунд.
Пожалуйста, позвольте пользователю выбрать период опроса, включая «никогда не опрашивать».
Также имейте в виду, что это серьезно повлияет на батарею пользователя.
Я хочу, чтобы эта служба работала бесконечно долго, пока пользователь не остановит службу.
Это невозможно. Самое близкое, что вы можете получить, это через startForeground()
, но даже это не гарантирует, что ваш сервис будет жить вечно.
Более того, это серьезный анти-паттерн в Android. Пользователи ненавидят приложений, которые пытаются работать вечно, поэтому нам приходится бороться с убийцами задач и тому подобным.
Но то, что я наблюдаю через несколько часов, служба исчезает, когда она достигает более 30+ мегабайт.
Через несколько часов, когда GPS постоянно включен и устройство не активируется, батарея вашего пользователя разряжается, и в этот момент ваш сервис и все остальное исчезают.
Что касается памяти, если вы думаете, что у нее течет память, используйте MAT, чтобы отследить утечки.