Так вот, что я в итоге и сделал.
Это то, что я добавил в примечание LocationListener о глобальных переменных timertest и loccounter:
public class MyLocationListener implements LocationListener
{
public void onStart() {
if (timertest==false) {
timertest=true;
serviceHandler = new Handler();
serviceHandler.postDelayed( new timer(),1000L );
}
}
class timer implements Runnable {
public void run() {
++loccounter;
if (runtest==true && loccounter>8) {
dt=200;
runtest=false;
stoplistening();
} else serviceHandler.postDelayed( this, 1000L );
}
}
}
Я запускаю таймер прямо перед запросом обновлений местоположения.
public void locupdate(int minTime, float minDistance) {
mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mlocListener = new MyLocationListener();
if (mlocListener != null && mlocManager != null) {
mlocManager.removeUpdates(mlocListener);
}
loccounter=0;
((MyLocationListener) mlocListener).onStart();
runtest=true;
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
minTime, minDistance, mlocListener);
}
и последний метод в слушателе местоположения:
public void stoplistening() {
mlocManager.removeUpdates(mlocListener);
loccounter=0;
}
Надеюсь, это кому-нибудь поможет