由于更新之间的最短时间,它会再次显示1秒后的位置更新,一旦我获得位置更新,我该如何停止此更新
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1000; // in Meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1*1000*60; // in Milliseconds
protected LocationManager locationManager;
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES,MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, locationListener);
private class MyLocationListener implements LocationListener
{
public void onLocationChanged(Location location)
{
String message = String.format(
"New Location \n Longitude: %1$s \n Latitude: %2$s",
location.getLongitude(), location.getLatitude(),location.getTime()
);
Toast.makeText(MyService.this, message, Toast.LENGTH_LONG).show();
}
public void onStatusChanged(String s, int i, Bundle b) {}
public void onProviderDisabled(String s) {}
public void onProviderEnabled(String s) {}
}
答案 0 :(得分:3)
locationManager.removeUpdates(locationListener);
答案 1 :(得分:2)
要删除更新,您必须致电
locationManager.removeUpdates(<yourLocationListener>);
答案 2 :(得分:0)
试试这个:
locationManager.removeUpdates(locationListener);
locationManager= null;