Document says :-
public Location getLastLocation ()
Returns the best most recent location currently available. If a location is not available, which should happen very rarely, null will be returned. The best accuracy available while respecting the location permissions will be returned. This method provides a simplified way to get location. It is particularly well suited for applications that do not require an accurate location and that do not want to maintain extra logic for location updates.
You have to use onLocationChange()
method to get location:-
@Override
public void onLocationChanged(final Location location) {
mCurrentLocation = location;
}