title: onLocationChanged is not called from IntentService
body: <p>I have an AlarmManager that triggers every 30 minutes to an IntentService, and this intent service is to get the user's location each time. I have 2 ways of getting location: first it checks the getLastKnownLocation(), and if it was within the last 2 minutes it uses that, <em>this part works perfectly</em>. </p>
  
  <p>The second way is if the last location was old or returns null, in which I want to get the new location once. For some reason <em>this never calls onLocationChanged().</em> This results in my IntentService not returning coordinates much of the time, it only returns them if the getLastKnownLocation() was recent.</p>
  
  <p>Here is my code for how it is set up, why is it that if I want to get a new location, it is never called? Check the comments in the code to see what is called and what is never called.</p>
  
  <pre><code>LocationListener locationListener;
      LocationManager locationManager;
      private final double MIN_COORD_DIFF = 0.0006;
  
      public CoordinateAlarmReceiver(){
          super("CoordinateAlarmReceiver");
      }
  
      @Override
      protected void onHandleIntent(Intent intent) {
          //THIS IS CALLED CORRECTLY
          MyLog.i("coordinate alarm received");
  
          locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
          Location lastLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
          //if last location was in past 2 minutes, use that
          if(lastLocation != null &amp;&amp; lastLocation.getTime() &gt; Calendar.getInstance().getTimeInMillis() - 2 * 60 * 1000) {
              //THIS IS CALLED CORRECTLY
              storeLocation(lastLocation);
              MyLog.i("Last location was recent, using that");
          }
          else {  //otherwise get new location
              //THIS IS CALLED CORRECTLY
              MyLog.i("Last location was old, getting new location");
              locationListener = new LocationListener() {
                  @Override
                  public void onLocationChanged(Location location) {
                      //THIS IS NEVER CALLED
                      MyLog.i("Got new coordinates");
                      storeLocation(location);
                      locationManager.removeUpdates(this);
                  }
                  @Override
                  public void onStatusChanged(String s, int i, Bundle bundle) {
                  }
                  @Override
                  public void onProviderEnabled(String s) {
                  }
                  @Override
                  public void onProviderDisabled(String s) {
                  }
              };
  
              locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
          }
      }
  </code></pre>