Используя мое приложение для Android, когда пользователь выполняет определенное действие, запускается фоновая служба, которая выбирает текущее местоположение GPS и сохраняет его в базе данных в дополнение к другим действиям. В этом сервисе я использую requestLocationUpdates()
из класса LocationManager
и жду, пока не будет запущен onLocationChanged()
моего LocationListener
(который реализован сервисом). Но каков наилучший способ дождаться стрельбы onLocationChanged
? Стоит ли просто опрашивать переменную и ждать, пока она не будет установлена? Любые советы?
Примечание: я не могу просто записать в базу данных в onLocationChanged()
из-за некоторых других вещей.
РЕДАКТИРОВАТЬ: Чтобы прояснить мою ситуацию, я могу привести пример, похожий на мой случай:
Допустим, пользователь нажимает кнопку и запускается метод myMethod
, который возвращает некоторый объект. Затем в этом myMethod я буду регистрироваться для получения обновлений местоположения от GPS (используя requestLocationChanged
) и, кроме того, буду ждать местоположение пользователей и использовать его для чего-то. Другими словами, myMethod
не может вернуться, пока не будет указано местоположение. Я не знаю, как я могу использовать onLocationChanged
в этом случае.