Android CountDownTimer 没有被取消
Android CountDownTimer is not getting cancel
我已经创建了一个 5 分钟的倒数计时器,但是如果用户在 2 分钟内完成了任务,我想停止计时器。
我正在使用布尔标志来检查天气用户是否完成任务。
如果用户在总时间之前完成了任务,那么我正在调用 cancel()
我的代码
public void settimer(final TextView time, long milliseconds) {
new CountDownTimer(milliseconds, 1000) {
public void onTick(long millisUntilFinished) {
time.setText(String.format("%d:%d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
AppController.RunningTime = millisUntilFinished;
if (AppController.Stoptimer)
this.cancel();
}
public void onFinish() {
AppController.TimeFinished = true;
}
}.start();
}
cancel()
是倒数计时器方法 mentioned here.
cancel()
正在调用,但倒计时计时器没有停止。
我们将不胜感激。
int adsInterval = 3000;
CountDownTimer mTimer = mTimer = new CountDownTimer(adsInterval, 1000) {
@Override
public void onFinish() {
Log.d("Seconds", adsInterval + " second");
// YOUR TASK
}
@Override
public void onTick(long l) {
}
};
mTimer.start();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
}
}, 3000);
To START Timer
mTimer.start();
To STOP Timer
mTimer.cancel();
我已经创建了一个 5 分钟的倒数计时器,但是如果用户在 2 分钟内完成了任务,我想停止计时器。
我正在使用布尔标志来检查天气用户是否完成任务。
如果用户在总时间之前完成了任务,那么我正在调用 cancel()
我的代码
public void settimer(final TextView time, long milliseconds) {
new CountDownTimer(milliseconds, 1000) {
public void onTick(long millisUntilFinished) {
time.setText(String.format("%d:%d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
AppController.RunningTime = millisUntilFinished;
if (AppController.Stoptimer)
this.cancel();
}
public void onFinish() {
AppController.TimeFinished = true;
}
}.start();
}
cancel()
是倒数计时器方法 mentioned here.
cancel()
正在调用,但倒计时计时器没有停止。
我们将不胜感激。
int adsInterval = 3000;
CountDownTimer mTimer = mTimer = new CountDownTimer(adsInterval, 1000) {
@Override
public void onFinish() {
Log.d("Seconds", adsInterval + " second");
// YOUR TASK
}
@Override
public void onTick(long l) {
}
};
mTimer.start();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
}
}, 3000);
To START Timer
mTimer.start();
To STOP Timer
mTimer.cancel();