title: requestLocationUpdates() takes too much time OR it does not works at all
body: <p>I have used <code>requestLocationUpdates</code> method inside <code>Service</code> in my Android application for getting updates whenever location of my device changes. I have set <code>minTime = 0</code> But this <code>requestLocationUpdates</code> method is giving update after very long delays (that is 10 to 15 minutes, or even more). And sometimes when I run my application <code>requestLocationUpdates</code> mehod does not gives any update at all. And few of the times (very rare) this <code>requestLocationUpdates</code> method behaves as expected (gives updates continuously with 0 seconds delay). So what can be the problem? And how can I get updates continuously, every time when I run my application?</p>
  
  <p><strong>HelloService.java</strong></p>
  
  <pre><code>public class HelloService extends Service {
      @Override
      public int onStartCommand(Intent intent, int flags, int startId) {
          new Thread(new Runnable() {
              @Override
              public void run() {
                  new Handler(getMainLooper()).post(new Runnable() {
                      @Override
                      public void run() {
                          LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                          if (Build.VERSION.SDK_INT &gt;= 23 &amp;&amp; ContextCompat.checkSelfPermission(MainActivity.context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &amp;&amp; ContextCompat.checkSelfPermission(MainActivity.context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                              return;
                          }
                          else {
                              manager.requestLocationUpdates("gps", 0, 0, new LocationDetector());
                              Toast.makeText(MainActivity.ctx, "Service Started...", Toast.LENGTH_LONG).show();
                          }
                      }
                  });
              }
          }).start();
          return Service.START_STICKY;
      }
  }
  </code></pre>
  
  <p><strong>LocationDetector.java</strong></p>
  
  <pre><code>public class LocationDetector implements LocationListener {    
      @Override
      public void onLocationChanged(Location location) {
          /*I have used here Log.e instead of Log.d in order to get the output in clear red message that is easily readable*/
          Log.e("GPS: ", location.getLatitude()+ ", " +location.getLongitude(), new Exception());
      }
      @Override
      public void onStatusChanged(String provider, int status, Bundle extras) {}
      @Override
      public void onProviderEnabled(String provider) {}
      @Override
      public void onProviderDisabled(String provider) {}
  }
  </code></pre>