为什么不是onChronometerTick被称为? [英] Why isn't onChronometerTick being called?
本文介绍了为什么不是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(长升){ 长elapsedTime = 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屋!
查看全文