我正在使用android LocationManager库的例程requestSingleUpdate()例程,其中LocationListener。我试图实现的功能是,用户可以按下按钮,应用程序将获得其当前位置并执行反向地理编码以获取大致地址。为Android请求设置超时更新
我的问题是,根据设备的网络情况,获取定位可能需要很长时间。我如何实现一个超时会导致我的'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);代替 – 2013-11-24 10:16:26