可能重复:
GPS not update location after close and reopen app on android
我知道问题已经提出但我的问题是。
每当我打开我的应用时,它会显示最后一个位置而非当前位置
我有一个当前位置的按钮,我希望当我打开我的应用程序时它会在地图上显示当前位置然后当我点击按钮然后它显示当前位置。
所以我的问题是,当我打开我的应用程序时,它会显示最后一个位置,但是当我按下它时会显示当前位置。
onCreate() 中的 代码
getKnownLocation()的代码 对于按钮我调用了getKnownLocation() _locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
_locationListener = new CurrentLocationListener(this,this);
_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1,1,_locationListener );
_currentGeoPoint = getKnownLocation();
_currentPosOverlay = new OverlayItem(_currentGeoPoint, "", "");
Log.d(" overlay", "overlaylast "+_currentGeoPoint);
// Toast.makeText(getBaseContext(), "overlay12333vvv "+_currentGeoPoint, Toast.LENGTH_SHORT).show();
_customOverlay.addOverlay(_currentPosOverlay);
_mapOverlays.add(_customOverlay);
// TODO Auto-generated method stub
Location lastLocation = _locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(lastLocation == null){
lastLocation = _locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if(lastLocation != null){
GeoPoint gp = new GeoPoint((int)(lastLocation.getLatitude() * 1e6), (int)(lastLocation.getLongitude() * 1e6));
last_loc=gp;
return gp;
}else {
return _mapView.getMapCenter();
}
答案 0 :(得分:0)
原因是它显示了您最后知道的位置,这就是您的代码所做的事情。
你需要给LocationManager一些时间来找到你当前的位置,你不能指望它在不计算的情况下知道它。
你能做的是: