Попробуйте это
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
locationListener);
Возможно, вы используете поставщика сети.Слушатель обычно удаляется в активном состоянии на паузе.И вы можете установить прослушиватель в событии onResume действия.
Я не уверен, какова логика поиска лучшего провайдера на Android.Но GPS всегда считается наиболее точным по сравнению с сетевым провайдером.Но есть условия, когда получить блокировку местоположения по GPS невозможно.Это когда сетевой провайдер вступает в эксплуатацию.
Обычно я создаю простой класс, который вызывает функцию для получения координат местоположения.Внутри функции я сначала запрашиваю местоположение с помощью GPS.Я жду местоположения в течение 30 секунд, если оно не получено, я запрашиваю его с помощью сетевого провайдера.Таким образом, я всегда могу убедиться, что я получаю значение GPS в качестве моего первого предпочтения.