Разница между FusedLocationProviderClient и FusedLocationProviderApi - PullRequest
0 голосов
/ 20 февраля 2019

Чем FusedLocationProviderClient отличается от FusedLocationProviderApi, какие вещи решаются с помощью нового FusedLocationProviderClient, расскажите, пожалуйста, о существенных различиях на уровне кода и внутренней работе обоих.

1 Ответ

0 голосов
/ 20 февраля 2019

С выпуском сервисов Google Play 11.0.0 был представлен новый способ доступа к LocationServices.Теперь некоторые функции, управляемые вручную, такие как подключение к сервисам Play, не требуются.

Новые API-интерфейсы LocationServices намного проще и сделают ваш код менее подверженным ошибкам.Логика подключения обрабатывается автоматически, и вам нужно только подключить один прослушиватель завершения:

FusedLocationProviderClient client =
            LocationServices.getFusedLocationProviderClient(this);

client.requestLocationUpdates(LocationRequest.create(), pendingIntent)
    .addOnCompleteListener(new OnCompleteListener() {
       @Override
       public void onComplete(@NonNull Task task) {
          Log.d("MainActivity", "Result: " + task.getResult());
       }
});

Новый API немедленно улучшает код несколькими способами:

  1. APIвызовы автоматически ожидают установления соединения со службой, что устраняет необходимость ждать onConnected перед выполнением запросов.
  2. Используется API-интерфейс Task, который упрощает составление асинхронных операций.
  3. код является автономным и может быть легко перемещен в общий служебный класс или аналогичный.
  4. Вам не нужно понимать базовый процесс подключения, чтобы начать кодирование.

Для получения дополнительной информацииподробно, вы можете прочитать этот блог.

...