title: How to create FusedLocationProviderClient in a Service that can run untill stop by user?
body: <p>I have successfully created an activity with <strong>FusedLocationProviderClient</strong> that returns location coordinates within a specific period of time.</p>
  
  <p>But I want it to run in background service that saves coordinates in local database and never ends until user stops the service manually.</p>
  
  <p>This is my source code:</p>
  
  <pre><code>private String mLastUpdateTime;
  private static final long UPDATE_INTERVAL_IN_MILLISECONDS = 10000;
  private static final long FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS = 5000;
  private static final int REQUEST_CHECK_SETTINGS = 100;
  private FusedLocationProviderClient mFusedLocationClient;
  private SettingsClient mSettingsClient;
  private LocationRequest mLocationRequest;
  private LocationSettingsRequest mLocationSettingsRequest;
  private LocationCallback mLocationCallback;
  private Location mCurrentLocation;
  
  private void init() {
      mFusedLocationClient = 
     LocationServices.getFusedLocationProviderClient(this);
      mSettingsClient = LocationServices.getSettingsClient(this);
  
      mLocationCallback = new LocationCallback() {
          @Override
          public void onLocationResult(LocationResult locationResult) {
              super.onLocationResult(locationResult);
              // location is received
              mCurrentLocation = locationResult.getLastLocation();
              mLastUpdateTime = DateFormat.getTimeInstance().format(new Date());
  
              updateUIAndMarker();
          }
      };
  
      mRequestingLocationUpdates = false;
  
      mLocationRequest = new LocationRequest();
      mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
      mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
      mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
  
      LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
      builder.addLocationRequest(mLocationRequest);
      mLocationSettingsRequest = builder.build();
  }
  </code></pre>