LocationManager 의 위치 측위 함수의 경우 대표적으로만 보면 2가지가 있는 걸로 알고 있습니다.
하나는 주기적으로 측위하는 함수인 requestLocationUpdate 함수와
하나는 한번만 측위하는 함수인 requestSingleUpdate 두가지가 있는 걸로 알고 있습니다.
requestLocationUpdates 의 경우는 함수 파라미터로 전달하는 거리 또는 시간값 이상 일때 (거리와 시간 조건이 and 조건인지 or 조건인지는 확실히 모르겠습니다.) 콜백을 호출하며
requestSingleUpdate 는 호출시 한번에 한하여 측위 되었을시 콜백을 호출 하고 있습니다.
따라서 상황에 따라 적절히 사용 하셔야 할 것 같습니다.
저 같은 경우는 주로 requestSingleUpdate 를 알람으로 설정하여 주기적 측위를 하여 이때 주의 할 사항은 6.0 이상에서 Doze 모드시 알람이 동작하는 함수를 사용 하여야 하며 타이머 태스크를 이용해서 특정 시간 이 지났을시 타임 아웃 처리를 해주는 방법을 주로 사용하고 있습니다.
자세한 사항은 아래 링크의 API 설명을 참조 하시는게 좋을것 같습니다.
https://developer.android.com/reference/android/location/LocationManager.html