有条件的哔声不起作用

时间:2012-05-11 01:20:13

标签: android conditional beep

我正在编写一个应用程序的代码,当当前速度超过用户设置的警告速度限制时,该代码会发出“嘟嘟”声。下面显示的代码写在onLocationChanged()内,但由于某些逻辑原因,它只发出一次哔声然后停止,这告诉我它经过一次循环,然后过去时间和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 个答案:

答案 0 :(得分:0)

这并不意味着在这里居高临下(这个答案听起来像你的经典IT服务台“你试过把它关掉再打开吗?”),只是覆盖了所有的基础。

您要更新curTime吗?您所描述的内容是,如果pastTime最初设置为远,而curTime在循环外设置一次并且未更新,则会看到您的内容。

如果不这样做,您可能需要对if语句(if之前)中涉及的变量进行一些示例,以查看它们设置的值。

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