Android make метод запускается каждые X секунд (включает gps и вызов сервера) - PullRequest
2 голосов
/ 08 октября 2011

У меня есть нишевое приложение, которое должно отправлять серверу свое местоположение каждые несколько секунд. (Не беспокойтесь о времени автономной работы мобильного телефона). Как бы я создавал поток или что-то выполняемое каждые несколько секунд? У меня есть gpslistener, но имя его подкласса "onlocationchanged", которое, кажется, хочет предоставить информацию только в случае изменения местоположения, мне потребуется обновленное местоположение, отправляемое на сервер каждый раз, хотя с интервалом, который я определяю

Как бы я это сделал?

понимание ценится

Ответы [ 2 ]

8 голосов
/ 08 октября 2011

Поместите это в onCreate службы.

  mTimer.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
           // What you want to do goes here
         }
    }, 0, REFRESH_TIME);

REFRESH_TIME - это частота или время в миллисекундах, когда run повторяется.

1 голос
/ 08 октября 2011

Вы не можете просто спросить андроида о текущей позиции.GPS занимает некоторое время и может быть недоступен.Об этом говорится в этом сообщении .

. Вы можете использовать таймер, подобный тому, который указан пользователем 500865, а затем запросить последнее известное местоположение, подобное этому

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 1, this);
Location l = null;
l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

Вы можете отслеживать последнее местоположение и выполнять некоторую логику, если новое местоположение отличается или совпадает.

Метод requestLocationUpdates имеет следующие параметры:

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

minDistance - минимальный интервал расстояния для уведомлений, в метрах

Используйте их, чтобы настроить, как часто вы хотите получать обновление местоположения

...