Я использую рутину requestSingleUpdate() для библиотеки android LocationManager с LocationListener. Функциональность, которую я пытаюсь реализовать, заключается в том, что пользователь может нажать кнопку, и приложение получит свое текущее местоположение и выполнит обратное геокодирование, чтобы получить приблизительный адрес.Установить тайм-аут для запроса androidSingleUpdate
Моя проблема в том, что в зависимости от ситуации в сети устройства получение исправления местоположения может занять много времени. Как я могу реализовать тайм-аут, который заставит мой запрос requestSingleUpdate() отказаться и сказать пользователю, чтобы узнать их собственный кровавый адрес?
мой код:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
locationManager.requestSingleUpdate(criteria, new LocationListener(){
@Override
public void onLocationChanged(Location location) {
// reverse geo-code location
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
}, null);
Кроме того, если вы не можете ссылаться на myRunnable по какой-то причине, вы можете использовать MyHandler. removeCallbacksAndMessages (NULL); вместо –