Проблема с Android GPS - PullRequest
       16

Проблема с Android GPS

0 голосов
/ 25 января 2012

У меня есть служба (с функцией wakelock), которая должна постоянно работать за кулисами, захватив пользователя Geo Location.Service реализует методы LocationListener (т. Е. onLocationChanged()).

Однако для вызова onLocationChanged() по телефону требуется некоторое время, поэтому моя служба тем временем должна что-то делать.Я думал об использовании Thread.sleep(), но помешает ли это телефону вызывать onLocationChanged()?Или я должен сделать опрос: в то время как (я <1000 000) {++ i;}? </p>

Я не получаю такие обильные результаты GPS, используя ни одну из этих идей;интересно, кто-нибудь может дать мне совет, как этого добиться.

Ответы [ 3 ]

1 голос
/ 25 января 2012

Полагаю, вы хотите сохранить сервис "живым", пока он ожидает информацию об изменении местоположения.Об этом позаботится система, и вам не нужно добавлять код для этого.Когда информация об изменении местоположения становится доступной, onLocationChanged () будет вызываться в контексте вашей службы.

1 голос
/ 25 января 2012

Я думаю, вы можете использовать wait () и notify () с блоком синхронизации с экземпляром LocationListener.поиск образцов с использованием wait (), notify ().

0 голосов
/ 29 января 2012

Я решил проблему, удалив WakeLock (разряженный аккумулятор), выполнив 10-секундное ожидание в режиме ожидания / ожидание нити (на случай, если один из них заблокирует вызов GPS onLoc ()), и с помощью AlarmManager вывести устройство из спящего режима. и запустить сервис.

Это: получает GPS во время сна и не разряжает батарею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...