为什么不是onChronometerTick被称为? [英] Why isn't onChronometerTick being called?

查看:469
本文介绍了为什么不是onChronometerTick被称为?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的code从未进入onChronometerTick方法。我在做什么错误?我需要以某种方式设置滚动时间?我不能想出一个办法做到这一点。

  elapsedTimer.setOnChronometerTickListener(新Chronometer.OnChronometerTickListener(){
    @覆盖
    公共无效onChronometerTick(天文台时计){
        计数进位[0] =(SystemClock.elapsedRealtime() - chronometer.getBase())/ 1000;
        elapsedTimeDynamic.setText(+计数进位);
    }
});
elapsedTimer.start();


解决方案

对于谁是有使用精密时计为经过的定时器/秒表麻烦,不能算出它未来的任何人,我结束了再杀天文台表,并使用CountDownTimer的,但以这样的方式使用它,它会也向上计数

 最终长STARTTIME = System.currentTimeMillis的();
elapsedTimer =新CountDownTimer(activityTime + 1000,100){
    @覆盖
    公共无效onTick(长升){        长ela​​psedTime = System.currentTimeMillis的() - startTime时;
        elapsedTime = elapsedTime / 1000;
        elapsedTimeTextView.setText(的String.format(%02D,(elapsedTime)));
    }    @覆盖
    公共无效onFinish(){    }
}。开始();

My code never enters the onChronometerTick method. What am I doing incorrectly? Do I need to set the tick time somehow? I can't figure out a way to do that.

elapsedTimer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer chronometer) {
        countUp[0] = (SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000;
        elapsedTimeDynamic.setText("" + countUp);
    }
});
elapsedTimer.start();

解决方案

For anyone in the future who is having trouble using chronometer for an elapsed timer/stopwatch and can't figure it out, I ended up scrapping chronometer and using CountDownTimer, but using it in such a way that it would also count up:

final long startTime = System.currentTimeMillis();
elapsedTimer = new CountDownTimer(activityTime + 1000, 100) {
    @Override
    public void onTick(long l) {

        long elapsedTime = System.currentTimeMillis() - startTime;
        elapsedTime = elapsedTime/1000;
        elapsedTimeTextView.setText(String.format("%02d", (elapsedTime)));
    }

    @Override
    public void onFinish() {

    }
}.start();

这篇关于为什么不是onChronometerTick被称为?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆