如何正确停止FusedLocationProviderClient?
我在Service内使用FusedLocationProviderClient。 
 我想以正确的方式“停止”它。如何正确停止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()); 
    } 
回答:
只是调用的onDestroy
removeLocationUpdates为requestLocationUpdates,它说:
此调用将保持谷歌Play服务的连接活动,所以请确保在不再需要时调用removeLocationUpdates(LocationCallback),否则您失去了自动连接管理的好处。
回答:
只是改变onDestroy();这样:
@Override     protected void onDestroy() { 
     super.onDestroy(); 
     if(locationclient!=null) 
      locationclient.disconnect(); 
    } 
以上是 如何正确停止FusedLocationProviderClient? 的全部内容, 来源链接: utcz.com/qa/261692.html





