Android - Получение обновлений местоположения только один раз - PullRequest
0 голосов
/ 10 января 2020

Я написал небольшое приложение, которое отображает мою текущую широту и долготу в простом MainActivity. Я использовал официальные Android Developer учебные страницы о получении местоположения пользователя .
Вот код, который я написал до сих пор:

private FusedLocationProviderClient fusedLocationClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
    startLocationUpdates();
}

private void startLocationUpdates() {
    LocationRequest locationRequest = LocationRequest.create();
    locationRequest.setInterval(10_000);
    locationRequest.setFastestInterval(5_000);
    locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);

    LocationCallback locationCallback = new LocationCallback() {
        @Override
        public void onLocationResult(LocationResult locationResult) {
            if (locationResult == null) {
                ((TextView) findViewById(R.id.latitudeText)).setText("No data");
                ((TextView) findViewById(R.id.longitudeText)).setText("No data");
            }
            else {
                ((TextView) findViewById(R.id.latitudeText)).setText(Double.toString(locationResult.getLastLocation().getLatitude()));
                ((TextView) findViewById(R.id.longitudeText)).setText(Double.toString(locationResult.getLastLocation().getLongitude()));
            }
        }
    };

    fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper());
}

Я включил разрешение местоположения для приложение и запустить его. Но проблема в том, что метод onLocationResult вызывается только один раз. И это происходит сразу после вызова метода requestLocationUpdates.
Я надеюсь, что кто-нибудь сможет мне помочь.

...