倒数计时器不会停止 [Android]
Countdown timer doesn't stop [Android]
这是我第一次来这里,我需要你的帮助。
我的 activity 开始调用此方法,并且有一个按钮应该重新启动计时器。该按钮包含相同的方法,但不会重新启动。方法代码最后有 timer.cancel 但它没有完成工作,计时器保持 运行 而我无法得到它。我真的需要帮助。
public final void starTimer() {
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String num = extras.getString("seg");
timerr = new CountDownTimer((Integer.parseInt(num)) * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished / 1000;
if (millis<10){
txtTempo.setText("0"+ (millisUntilFinished / 1000)) ;
} else {
txtTempo.setText("" + (millisUntilFinished / 1000));
}
}
@Override
public void onFinish() {
txtTempo.setText("00");
}
});
}
};
timerr.cancel();
timerr.start();
}
在Activity/Fragment.
中调用timerr.cancel() onDestroy()/onDestroyView()
或调用单独的方法
timerr = new CountDownTimer((Integer.parseInt(num)) * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished / 1000;
if (millis<10){
txtTempo.setText("0"+ (millisUntilFinished / 1000)) ;
} else {
txtTempo.setText("" + (millisUntilFinished / 1000));
}
}
@Override
public void onFinish() {
txtTempo.setText("00");
}
});
}
};
timerr.start();
}
只要你想取消定时器就使用方法
取消定时器();
void cancelTimer() {
if(timerr!=null)
timerr.cancel();
}
试试这个
public final void starTimer() {
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String num = extras.getString("seg");
if(timerr!=null){
timerr.cancel();
timerr=null;
}
timerr = new CountDownTimer((Integer.parseInt(num)) * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished / 1000;
if (millis<10){
txtTempo.setText("0"+ (millisUntilFinished / 1000)) ;
} else {
txtTempo.setText("" + (millisUntilFinished / 1000));
}
}
@Override
public void onFinish() {
txtTempo.setText("00");
}
});
}
};
timerr.start();
}
这是我第一次来这里,我需要你的帮助。 我的 activity 开始调用此方法,并且有一个按钮应该重新启动计时器。该按钮包含相同的方法,但不会重新启动。方法代码最后有 timer.cancel 但它没有完成工作,计时器保持 运行 而我无法得到它。我真的需要帮助。
public final void starTimer() {
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String num = extras.getString("seg");
timerr = new CountDownTimer((Integer.parseInt(num)) * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished / 1000;
if (millis<10){
txtTempo.setText("0"+ (millisUntilFinished / 1000)) ;
} else {
txtTempo.setText("" + (millisUntilFinished / 1000));
}
}
@Override
public void onFinish() {
txtTempo.setText("00");
}
});
}
};
timerr.cancel();
timerr.start();
}
在Activity/Fragment.
中调用timerr.cancel() onDestroy()/onDestroyView()或调用单独的方法
timerr = new CountDownTimer((Integer.parseInt(num)) * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished / 1000;
if (millis<10){
txtTempo.setText("0"+ (millisUntilFinished / 1000)) ;
} else {
txtTempo.setText("" + (millisUntilFinished / 1000));
}
}
@Override
public void onFinish() {
txtTempo.setText("00");
}
});
}
};
timerr.start();
}
只要你想取消定时器就使用方法
取消定时器();
void cancelTimer() {
if(timerr!=null)
timerr.cancel();
}
试试这个
public final void starTimer() {
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String num = extras.getString("seg");
if(timerr!=null){
timerr.cancel();
timerr=null;
}
timerr = new CountDownTimer((Integer.parseInt(num)) * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished / 1000;
if (millis<10){
txtTempo.setText("0"+ (millisUntilFinished / 1000)) ;
} else {
txtTempo.setText("" + (millisUntilFinished / 1000));
}
}
@Override
public void onFinish() {
txtTempo.setText("00");
}
});
}
};
timerr.start();
}