我正在使用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()”被多次调用,声音起伏不定...... 我该怎么做才能解决这个问题? 非常感谢提前!!!
答案 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))));
}