我的倒计时器没有使用常量值,因为每个下一个级别的时间都不同。因此,我在第一个级别使用设置为 150000 的 timeCount 变量:
long timeCount = 150000;
public String formatTime(long millis) {
String output = "00:00";
long seconds = millis / 1000;
long minutes = seconds / 60;
seconds = seconds % 60;
minutes = minutes % 60;
String sec = String.valueOf(seconds);
String min = String.valueOf(minutes);
if (seconds < 10)
sec = "0" + seconds;
if (minutes < 10)
min= "0" + minutes;
output = min + " : " + sec;
return output;
}
还有我的计时器:
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void onFinish() {
}
public void onTick(long millisUntilFinished) {
vreme.setText("" + millisUntilFinished / 1000);
}
}
// New timer for 40 minutes, starts after initialization
MyCount brojacVremena = new MyCount(timeCount, 1000)
{
// Updates the text on your "scoreboard" every second
public void onTick(long millisUntilFinished)
{
vreme.setText("" + formatTime(millisUntilFinished));
}
public void onFinish()
{
finish();
}
};
所以,当游戏结束时,我会显示一个弹出窗口,按下“确定”后就会进入下一个级别。我调用弹出窗口并设置新值,包括时间和其他一些内容:
Intent i = new Intent(Kviz.this, Popup_nivoi.class);
if(level==2){
numberOfQuestions = 13;
timeCount = 160000;
greska = 7;
level++;
}
brojacVremena.cancel();
startActivityForResult(i, MY_REQUEST2);
但是我的倒计时器总是从旧时间开始,150000ms。如何重置它,导致我更改 timeCount 值不起作用。我不知道为什么。该变量已更改,我确信这一点,但倒数计时器不使用它。
最佳答案
您无法重置已创建的 CountDownTimer
中的时间,它是不可变的对象,并且您的 timeCount
变量在创建此对象时仅使用一次。所以你需要做的就是创建另一个带有新时间的计时器。
UPD:这是一些代码
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void onFinish() {
finish();
}
public void onTick(long millisUntilFinished) {
vreme.setText("" + formatTime(millisUntilFinished));
}
}
MyCount brojacVremena = new MyCount(timeCount, 1000);
然后当你需要新的计时器时,你只需编写
brojacVremena = new MyCount(timeCount, 1000);
使用新的timeCount
变量。
关于java - 如何在 Activity 恢复时重置倒计时计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815367/