CountDownTimer onTick

时间:2014-11-05 08:14:45

标签: java android audio countdowntimer

我正在使用CountDownTimer。我想在特定时间播放声音只是为了建议。那么这是我的代码:

@Override
        public void onTick(long l) {


            if((TimeUnit.MILLISECONDS.toSeconds(l) -
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))) == 10){
                 reproducirAviso();
            }

            tiempo.setText(String.format("%02d:%02d", TimeUnit.MILLISECONDS.toMinutes(l),
                    TimeUnit.MILLISECONDS.toSeconds(l) -
                            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))));

        }

发生了什么事?方法“reproducirAviso()”被多次调用,声音起伏不定...... 我该怎么做才能解决这个问题? 非常感谢提前!!!

1 个答案:

答案 0 :(得分:0)

如果您希望多次调用reproducirAviso(),请添加一个标志以检查是否已经运行了reproducirAviso()。

例如,某处设置了一个静态布尔值,如

public static boolean reproducing = false;

public void reproducirAviso()
{ 
    //
    // lots of your code
    // 
    reproducing = false;    
}

所以你的代码变成了

@Override
public void onTick(long l) 
{ 
    if(!reproducing && (TimeUnit.MILLISECONDS.toSeconds(l) -
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))) == 10){
         reproducirAviso();
    }

    tiempo.setText(String.format("%02d:%02d", TimeUnit.MILLISECONDS.toMinutes(l),
            TimeUnit.MILLISECONDS.toSeconds(l) -
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))));

}