LocationManger дает мне только одно обновление - PullRequest
0 голосов
/ 28 февраля 2012

Что я пытаюсь сделать


Здравствуйте, ребята, я пытаюсь создать службу, которая каждый час публикует обновление Location на моем сервере.Код работает, когда я запускаю Сервис, он автоматически публикует первое обновление местоположения, после чего ничего не происходит.Но странно то, что иногда это не так ...

Вопрос


Так что мне нужно изменить в моем коде, который помещает мой менеджер местоположениякаждый час местоположение обновляется.Если у вас есть отличный учебник или несколько примеров кода, это было бы здорово!

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

Возможно, ваше устройство переключилось на ЦП для экономии заряда батареи, и ваша служба не получит обновление.Подумайте об использовании будильника для обновлений, который просто запрашивает одно обновление местоположения (есть способ для этого в диспетчере местоположений, начиная с API 9) или используйте WakeLock в вашем сервисе (который является пустой тратой заряда батареи, если вам нужно только одно обновлениекаждый час).

Подробнее об диспетчере аварий см. здесь: http://developer.android.com/reference/android/app/AlarmManager.html

0 голосов
/ 28 февраля 2012

Так же, как и к предыдущему ответу, вы не должны использовать requestLocationUpdates для этого. Вы должны использовать AlarmManager каждый час, а затем выполнять .requestSingleUpdate ().

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

И помните, что через час ваше приложение может быть уничтожено менеджером процессов Android, поэтому оно все равно будет мертвым. В любом случае, AlarmManager будет решением этой проблемы.

...