java - CountDownTimer onTick

标签 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()”,声音断断续续地播放...
我该怎么做才能解决这个问题?
提前谢谢了!!!

最佳答案

如果您不想多次调用reproducirAviso(),请添加一个标志以检查是否已在运行reproducirAviso()。

例如,在某处设置静态 bool(boolean) 值,例如

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))));

}

关于java - CountDownTimer onTick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26752404/

相关文章:

java - 访问 Metro 2.0 请求/响应 Web 服务的 XML 负载

java - 使用 Proguard 后通过反射访问方法时出现 NoSuchMethodException

java - 原始文件未显示在android studio中

audio - openal:获取源的当前播放位置

java - 卡夫卡重复读

java - 阻止 Hibernate 尝试从数据库中获取计算字段

java - Java DB Derby Blob 和删除的性能问题

Android 崩溃报告库(Froyo 之前)

android - 意外 token 是什么意思?我可以解决它吗?

php - 错误101(net::ERR_CONNECTION_RESET):在PHP中