在Android开发过程中,计时控件是经常回使用到的,在Android控件库中有一个能快捷实现计时功能的控件Chronometer。用于显示从某个起始时间点开始经过的时间。它继承自TextView,显示的是从一个起始时间开始,一共过去了多长时间。
「注意」 使用Chronometer的stop方法时,只是停止刷新计时器的时间显示,在后台并没有停止计时。再次恢复计时时,并不是从停下的时间开始计时。Chronometer的setFormat(String format)方法并不能改变时间显示格式,Chronometer显示格式为00:00:00。
Chronometer mChronometer = findViewById(R.id.mChronometer);
mChronometer.setBase(SystemClock.elapsedRealtime());
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mChronometer.start();
}
});
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mChronometer.stop();
}
});
mChronometer.setFormat("mm:ss"); // 显示格式为mm:ss,例如03:45
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
long elapsedMillis = SystemClock.elapsedRealtime() - chronometer.getBase();
if (elapsedMillis >= 60000) {
// 如果计时器超过了60秒,弹出Toast
Toast.makeText(this, "60秒了", Toast.LENGTH_SHORT).show();
}
}
});
Chronometer控件适用于需要精确计时和时间显示的场景。它可以提供直观的时间显示,并且可以通过编程方式控制计时的起始点和计时长度。