FusedLocationProviderClient和FusedLocationProviderApi之间的差异

时间:2019-02-20 07:01:19

标签: android fusedlocationproviderapi google-location-services fusedlocationproviderclient

FusedLocationProviderClientFusedLocationProviderApi有何不同,请使用新的FusedLocationProviderClient解决什么问题,请说明代码级和两者内部工作的主要区别。

1 个答案:

答案 0 :(得分:2)

在Google Play服务的11.0.0版本中,引入了一种访问LocationServices的新方法。现在,不需要一些手动管理的功能,例如连接到Play服务。

新的LocationServices API更加简单,将使您的代码不易出错。连接逻辑是自动处理的,您只需要附加一个完成侦听器即可:

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. 它使用Task API,可以更轻松地编写异步操作。
  3. 该代码是独立的,可以轻松地移入共享实用程序类或类似程序中。
  4. 您无需了解底层的连接过程即可开始编码。

有关更多详细信息,您可以阅读this blog.