Есть два способа сделать это:
1) Используйте requestSingleUpate вместо requestLocationUpdates. Single - это запрос на 1 выстрел.
2) Используйте requestLocationUpdates и отмените регистрацию в обратном вызове.
Вы можете проверить getLastKnownLocation, чтобы увидеть, есть ли уже место в системе, но 99% времени там не будет, и вам придется вернуться к 1 или 2. Это может быть оптимизация скорости, но на это нельзя полагаться.