6

更新の間に最小時間があるため、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) {}
}
4

3 に答える 3

6
locationManager.removeUpdates(locationListener);
于 2012-07-03T13:04:14.470 に答える
2

更新を削除するには、電話する必要があります

locationManager.removeUpdates(<yourLocationListener>);
于 2012-07-03T13:05:19.397 に答える
0

これを試して :

 locationManager.removeUpdates(locationListener);
 locationManager= null;
于 2012-07-03T13:09:06.100 に答える