Android 有条件的蜂鸣声不工作

Android 有条件的蜂鸣声不工作,android,conditional,beep,Android,Conditional,Beep,我正在为一个应用程序编写代码,当当前速度超过用户设置的警告速度限制时,该程序将发出“嘟嘟”声。下面显示的代码是在onLocationChanged()中编写的,但出于某种逻辑原因,它只会发出一次嘟嘟声然后停止,这告诉我它只经过一次循环,之后pastTime和CurtTime会失去跟踪,如果条件在逻辑上不正确,则跳过循环。我想要延迟5秒的原因是在两次蜂鸣声之间有足够的时间延迟,而不是让它们重叠。在活动的一开始,我就用0初始化消遣。任何关于解决此问题的建议都将不胜感激。另外,每当位置侦听器中发生位置

我正在为一个应用程序编写代码,当当前速度超过用户设置的警告速度限制时,该程序将发出“嘟嘟”声。下面显示的代码是在
onLocationChanged()
中编写的,但出于某种逻辑原因,它只会发出一次嘟嘟声然后停止,这告诉我它只经过一次循环,之后pastTime和CurtTime会失去跟踪,如果条件在逻辑上不正确,则跳过循环。我想要延迟5秒的原因是在两次蜂鸣声之间有足够的时间延迟,而不是让它们重叠。在活动的一开始,我就用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;
}

这是一个非常具体的问题,我找不到任何与此相关的东西。我知道这对于一位专家来说是一个非常简单的问题。

这里并不意味着居高临下(这个答案听起来像是您的经典IT帮助热线“您是否尝试过关闭和再次打开它?”),只是涵盖了所有基础

您正在更新curTime吗?您所描述的是如果
passtime
最初是在很久以前设置的,而
curTime
是在循环之外设置的,并且没有更新,您会看到什么

如果做不到这一点,您可能需要对
if
语句中涉及的变量进行一些采样(在
if
之前),以查看它们被设置为什么值


或者,事先强制其中一个条件为真(例如使用
Activity.mySpeedmph=mySpeed_max+1;
),以检查另一个条件的操作。

curTime在locationlistener中不断更新,它位于getSpeed()的正下方,我可以看到速度的变化,这告诉我curTime也应该在变化。