我需要显示一个小时,分钟和秒钟的计时器。目前我使用android.os.CountDownTimer(1000 * 60 * 60,1000)。我觉得它不适合我的需要,因为我不需要它停下来,所以我采用输入巨大的值作为倒计时值。
我是否可能会错过另一种无限期显示时间刻度的方法?
答案 0 :(得分:2)
在我的情况下,上面的示例只有在我做了这样的更改后才开始工作:
private final Runnable mUpdateTimeTask = new Runnable() {
@Override
public void run() {
final long start = 0;
// long millis = SystemClock.uptimeMillis() ;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
if (seconds < 10) {
waitingTime_Time.setText("" + minutes + ":0" + seconds);
} else {
waitingTime_Time.setText("" + minutes + ":" + seconds);
}
mHandler.postAtTime(this,
start + (((minutes * 60) + seconds + 1) * 1000));
}
};
mStartTime = System.currentTimeMillis();
- 返回的值远远超过mStartTime = System.currentTimeMillis();
这会导致负值更新。
但是将开始时间设置为零,计时器每100毫秒更新一次。