Android: 获取正常 CountDownTimer 的过去时间?
Android: Get passed time of a normal CountDownTimer?
有没有办法保存 CountDownTimer
的确切经过时间(毫秒、秒或分钟都可以)?
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
我尝试在 onTick()
中增加一个变量,但问题是,我的计时器可以通过按钮取消和重新启动,并且每次启动计时器时都会调用 onTick()
,无论是否第二次通过与否。因此,如果我在 1 秒内多次单击按钮,则每次单击都会调用 onClick()
,而不是每秒调用一次。
你可以使用System.currentTimeMillis(),这是你想要的吗?
public class MyCountDownTimer extends CountDownTimer {
long timeStart;
public MyCountDownTimer(long x, long y) {
super(x, y);
timeStart = System.currentTimeMillis();
}
@Override
public void onTick(long millisUntilFinished) {
long timeLapsed = System.currentTimeMillis() - timeStart;
/// your code
}
@Override
public void onFinish() {
/// your code
}
}
有没有办法保存 CountDownTimer
的确切经过时间(毫秒、秒或分钟都可以)?
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
我尝试在 onTick()
中增加一个变量,但问题是,我的计时器可以通过按钮取消和重新启动,并且每次启动计时器时都会调用 onTick()
,无论是否第二次通过与否。因此,如果我在 1 秒内多次单击按钮,则每次单击都会调用 onClick()
,而不是每秒调用一次。
你可以使用System.currentTimeMillis(),这是你想要的吗?
public class MyCountDownTimer extends CountDownTimer {
long timeStart;
public MyCountDownTimer(long x, long y) {
super(x, y);
timeStart = System.currentTimeMillis();
}
@Override
public void onTick(long millisUntilFinished) {
long timeLapsed = System.currentTimeMillis() - timeStart;
/// your code
}
@Override
public void onFinish() {
/// your code
}
}