首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CountDownTimer onTick

CountDownTimer onTick
EN

Stack Overflow用户
提问于 2014-11-05 08:14:44
回答 1查看 224关注 0票数 0

我用的是CountDownTimer。我想在特定的时间播放一个声音,只是为了听取意见。这是我的密码:

代码语言:javascript
复制
@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()“被多次调用,声音播放的波涛汹涌.我能做些什么来解决这个问题?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 09:55:32

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

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

代码语言:javascript
复制
public static boolean reproducing = false;

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

所以你的代码变成

代码语言:javascript
复制
@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))));

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26752404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档