我用的是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()“被多次调用,声音播放的波涛汹涌.我能做些什么来解决这个问题?非常感谢!
发布于 2014-11-13 09:55:32
如果希望不多次调用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))));
}https://stackoverflow.com/questions/26752404
复制相似问题