gpt4 book ai didi

java - 如何正确停止FusedLocationProviderClient?

转载 作者:行者123 更新时间:2023-12-02 02:25:29 26 4
gpt4 key购买 nike

我在 Service 中使用 FusedLocationProviderClient
我想以正确的方式“阻止”它。

使用下面的代码好吗?

 @Override
public void onDestroy() {
super.onDestroy();
// Stop Looper of FusedLocationProviderClient
if (locationClient != null) {
locationClient = null;
}
}

其余代码

FusedLocationProviderClient locationClient;


protected void startLocationUpdates() {


// Create the location request to start receiving updates
mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(UPDATE_INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);

// Create LocationSettingsRequest object using location request
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
builder.addLocationRequest(mLocationRequest);
LocationSettingsRequest locationSettingsRequest = builder.build();

// Check whether location settings are satisfied
// https://developers.google.com/android/reference/com/google/android/gms/location/SettingsClient
SettingsClient settingsClient = LocationServices.getSettingsClient(this);
settingsClient.checkLocationSettings(locationSettingsRequest);

// new Google API SDK v11 uses getFusedLocationProviderClient(this)
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

return;
}

locationClient = getFusedLocationProviderClient(this);getFusedLocationProviderClient(this).requestLocationUpdates(mLocationRequest, new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
// do work here
onLocationChanged(locationResult.getLastLocation());
}
}, Looper.myLooper());
}

最佳答案

只需调用 removeLocationUpdates在 onDestroy 中

对于requestLocationUpdates,它说:

This call will keep the Google Play services connection active, so make sure to call removeLocationUpdates(LocationCallback) when you no longer need it, otherwise you lose the benefits of the automatic connection management.

关于java - 如何正确停止FusedLocationProviderClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47864434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com