Android 使用fusedlocationapi获取位置,而无需在一段时间间隔后请求位置更新

Android 使用fusedlocationapi获取位置,而无需在一段时间间隔后请求位置更新,android,geolocation,location,fusedlocationproviderapi,android-fusedlocation,Android,Geolocation,Location,Fusedlocationproviderapi,Android Fusedlocation,我在android中使用google的fusedlocationapi获取用户的当前纬度和经度,现在根据我的用例,我只想在用户点击按钮时获取用户的当前位置,现在我认为,我可以使用一些不同的东西,而不是在一段时间间隔内一次又一次地请求位置更新,这样我的用户的电池就不会耗尽太多。我在某某和其他社区上搜索了很多帖子,但没有发现任何有用的东西。现在有谁能告诉我如何才能找到适合我的用例的东西。当你得到一个位置时,你可以删除位置更新 LocationRequest mLocationRequest =

我在android中使用google的fusedlocationapi获取用户的当前纬度和经度,现在根据我的用例,我只想在用户点击按钮时获取用户的当前位置,现在我认为,我可以使用一些不同的东西,而不是在一段时间间隔内一次又一次地请求位置更新,这样我的用户的电池就不会耗尽太多。我在某某和其他社区上搜索了很多帖子,但没有发现任何有用的东西。现在有谁能告诉我如何才能找到适合我的用例的东西。

当你得到一个位置时,你可以删除位置更新

  LocationRequest mLocationRequest = new LocationRequest();
  mLocationRequest.setInterval(1000);
  mLocationRequest.setFastestInterval(1001);
  mLocationRequest.setNumUpdates(1);
  mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
  LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, new com.google.android.gms.location.LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
              // save your location here

            }
        });

是的,我也考虑过同样的问题,但问题是当用户再次点击按钮时,我想获取更新的位置,但根据您的代码,它将给出最后一个旧位置,因为现在您没有请求位置更新。如果我的想法不正确,请纠正我。当用户再次单击时,您只需再次启动此功能并保存更新的位置是的,但获取位置通常需要5秒的时间,但我不希望有太多延迟,在实际应用(如Zomato等)中,当您单击“自动”时,如何能够立即检测到他们获取位置??没有时间延迟??我正在等待您的回复@Ahmed AbidiI怀疑Zomato应用程序正在请求连续的位置更新,在onResume中没有优先权。