问题描述
|
我需要显示带有小时,分钟和秒的计时器。当前我使用android.os.CountDownTimer(1000 * 60 * 60,1000)。我感觉它并不是很适合我的需求,因为我不需要停止它,所以我求助于输入巨大的值作为倒计时值。
我可能会错过另一种无限显示时间刻度的方法吗?
解决方法
就我而言,上述示例仅在我进行如下更改后才能开始工作:
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毫秒更新一次。