Условный звуковой сигнал не работает

Я пишу код для приложения, которое будет издавать звуковой сигнал, когда текущая скорость превышает ограничение скорости, установленное пользователем. Код, показанный ниже, написан внутри onLocationChanged(), но по какой-то логической причине он издает только один раз, а затем останавливается, что говорит мне о том, что он проходит цикл один раз, после чего pastTime и curTime теряют дорожку, а условие if не является логически истинным после и, следовательно, пропускает цикл. Причина, по которой я хотел задержку в 5 секунд, заключается в том, чтобы между звуковыми сигналами было достаточно времени, чтобы они не перекрывались. Я инициализировал pasTime с 0 в самом начале действия. Любое предложение по исправлению этого приветствуется. Также curTime = c.getTimeInMillis() каждый раз происходит изменение местоположения в слушателе местоположения.

if (Activity2.mySpeedmph > mySpeed_max & curTime > pastTime+5000)
{
    player = MediaPlayer.create(Activity2.this, R.raw.beep);  
    player.setLooping(false);     
    player.setVolume(100,100);         
    player.start();    
    pastTime = curTime;
}

Это очень специфическая проблема, и я не могу найти ничего, связанного с этим. Я знаю, что это очень простой вопрос для эксперта.

1 ответ

Не хочу быть снисходительным (этот ответ звучит как ваша классическая ИТ-служба поддержки "Вы пытались выключить и снова включить?"), Просто охватывая все основы.

Вы обновляете curTime? То, что вы описываете, это то, что вы увидите, если pastTime был первоначально установлен далеко в прошлом и curTime устанавливается один раз за пределами цикла и не обновляется.

Если это не удастся, вам, вероятно, потребуется взять несколько выборок переменных, if заявление (до if), чтобы увидеть, какие значения они установлены.

Или заранее установите одно из условий (например, с помощью Activity.mySpeedmph = mySpeed_max + 1; чтобы проверить работу другого условия.

Другие вопросы по тегам