Я думаю, что вы в значительной степени получили это.У меня есть очень похожее решение, в котором я хочу «войти и выйти», как только смогу.
Я реализовал проверку на "точность" в своем алгоритме.Я предоставляю услугу 1 минуту от начала, чтобы получить ЛУЧШЕЕ возможное местоположение, или я выйду даже раньше, если я получу исправление с точностью 25 м или более.
Кроме того, я не использую AsyncTask для определения местоположения - служба не блокируетпоток, он получает и обрабатывает обратные вызовы из LocationManager, поэтому я не понимаю, почему вы хотите сделать AsyncTask.
Когда я закончу с получением местоположения и собираюсь выйти - тогда я вызываю асинхронную задачу для обработки сообщения Httpна сервер.
Насколько интервал - я даю пользователю варианты 5/15/30/1 час и 1/2 дня.Я использую неточную тревогу для этого - возможно, лучше от батареи.