Я написал следующую услугу. Идея состоит в том, чтобы отправить местоположение пользователя на сервер при запуске приложения и когда пользователь переместится более чем на 500m
. Проблема в том, что при запуске он вызывает onLocationChanged
3 раза.onLocationChanged вызывается несколько раз при запуске приложения
Я не могу понять, откуда его зовут 3 раза. Пожалуйста, помогите мне решить эту проблему.
public class LocationUpdateService extends Service implements
LocationListener,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
private static final long BACKGROUND_INTERVAL = 60000;
final private String TAG = LocationUpdateService.class.getSimpleName();
private LocationRequest mLocationRequest;
private GoogleApiClient mGoogleApiClient;
private String LOCATION_PREF = "LOCATION_PREF";
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "onStartCommand: ");
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(BACKGROUND_INTERVAL);
mLocationRequest.setFastestInterval(30000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
mLocationRequest.setSmallestDisplacement(500);
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public void onLocationChanged(Location location) {
Log.i("Location Service", "onLocationChanged: " + location.toString());
saveLocationandReport(String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude()));
}
Спасибо, так что мне нужно, чтобы вызвать его в последнее время? или Хит-сервер при третьей попытке, он всегда попадает в службу три раза – Kirmani88
использует параметр точности, предоставляемый объектом местоположения, а затем на основании этого можно решить, что делать – Ak9637
@ Ak9637: getAccuracy возвращает 23.33 на все образы – Kirmani88