title: No suitable method found for requestLocationUpdates
body: <p>This is my MainActivity.java:</p>
  
  <pre><code>import android.app.Activity;
  import android.app.AlertDialog;
  import android.app.ProgressDialog;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.location.Location;
  import android.location.LocationManager;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.MotionEvent;
  import android.view.View;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import com.google.android.gms.location.LocationListener;
  import com.google.android.gms.location.LocationRequest;
  
  
  public class MainActivity extends Activity {
  
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
          LocationListener locationListener = new GetCurrentLocation();
          locationManager.requestLocationUpdates(
                  LocationManager.GPS_PROVIDER, 5000, 10, locationListener);
  }
  </code></pre>
  
  <p>And this is my GetCurrentLocation.java:</p>
  
  <pre><code>import android.app.Activity;
  import android.content.Context;
  import android.location.Address;
  import android.location.Geocoder;
  import android.location.Location;
  import android.location.LocationManager;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.View;
  import android.widget.Toast;
  
  import com.google.android.gms.location.LocationListener;
  
  import java.io.IOException;
  import java.util.List;
  import java.util.Locale;
  
  public class GetCurrentLocation extends Activity implements LocationListener {
      String longitude;
      String latitude;
      String cityName;
  
      public void onLocationChanged(Location loc) {
          //editLocation.setText("");
          //pb.setVisibility(View.INVISIBLE);
          Toast.makeText(
                  getBaseContext(),
                  "Location changed: Lat: " + loc.getLatitude() + " Lng: "
                          + loc.getLongitude(), Toast.LENGTH_SHORT).show();
          longitude = "Longitude: " + loc.getLongitude();
          //Log.v(TAG, longitude);
          latitude = "Latitude: " + loc.getLatitude();
          //Log.v(TAG, latitude);
  
          /*------- To get city name from coordinates -------- */
          //String cityName = null;
          Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());
          List&lt;Address&gt; addresses;
          try {
              addresses = gcd.getFromLocation(loc.getLatitude(),
                      loc.getLongitude(), 1);
              if (addresses.size() &gt; 0)
                  System.out.println(addresses.get(0).getLocality());
              cityName = addresses.get(0).getLocality();
          }
          catch (IOException e) {
              e.printStackTrace();
          }
  
          //editLocation.setText(s);
      }
  
      //@Override
      public void onProviderDisabled(String provider) {}
  
      //@Override
      public void onProviderEnabled(String provider) {}
  
      //@Override
      public void onStatusChanged(String provider, int status, Bundle extras) {}
  
  
  }
  </code></pre>
  
  <p>The error I got is:</p>
  
  <pre><code>Error:(40, 24) error: no suitable method found for requestLocationUpdates(String,int,int,com.google.android.gms.location.LocationListener)
  method LocationManager.requestLocationUpdates(long,float,Criteria,PendingIntent) is not applicable
  (actual argument String cannot be converted to long by method invocation conversion)
  method LocationManager.requestLocationUpdates(String,long,float,PendingIntent) is not applicable
  (actual argument com.google.android.gms.location.LocationListener cannot be converted to PendingIntent by method invocation conversion)
  method LocationManager.requestLocationUpdates(long,float,Criteria,android.location.LocationListener,Looper) is not applicable
  (actual and formal argument lists differ in length)
  method LocationManager.requestLocationUpdates(String,long,float,android.location.LocationListener,Looper) is not applicable
  (actual and formal argument lists differ in length)
  method LocationManager.requestLocationUpdates(String,long,float,android.location.LocationListener) is not applicable
  (actual argument com.google.android.gms.location.LocationListener cannot be converted to android.location.LocationListener by method invocation conversion)
  </code></pre>
  
  <p>I am totally blank on which part of the code I should fix and I have tried to google but no relevant solution can be found.</p>