Я вычислил скорость транспортного средства и сравнил эту скорость с определенным пороговым значением, то есть скоростью < = 3. Теперь проблема заключается в вычислении времени ожидания. Я пытаюсь вычислить время ожидания для автомобиля, если автомобиль остается более двух минут, чем это общее время после ожидания более двух минут, будет добавлено к времени ожидания. Я использовал обработчик и выполнил внутри onLocationchanged() , но мой расчет времени случайный. разные обработчики и runnable работают в то время, и время быстрее, чем определено.Невозможно разместить обработчик и запустить внутри OnLocationChanged()
@Override
public void onLocationChanged(Location location) {
diaplayViews();
timeGpsUpdate = location.getTime();
float delta = (timeGpsUpdate - timeOld)/1000;
if (location.getAccuracy() <100) {
distance += locationOld.distanceTo(location);
Log.e("location:", location + "");
speed = (long) (distance/delta);
if(speed<=3)
{
if(runable==null)
{
runnable = new Runnable() {
public void run() {
waitingTime++;
updateHandler.postDelayed(this, 10000); // determines the execution interval waiting time addition on every 10 seconds after 2 minutes initially
}
};}
updateHandler.postDelayed(runnable, 60*2*1000); // acts like the initial delay
}
else {
handler.removeCallbacks(runable);
runable=null;
}
locationOld = location;
timeOld = timeGpsUpdate;
diaplayViews();
}
}