[英]How can I stop a Timer?
I have a simple question, how can I stop timer? 我有一个简单的问题,我怎么能停止计时器?
Button bCancel = (Button)findViewById(R.id.bt1);
bCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
startActivity(new Intent("com.jom.testcdt2.CANCELCLASS"));
}
});
final Thread logoTimer = new Thread(){
public void run(){
try {
int logoTimer = 0;
while (logoTimer < 10000) {
sleep(100);
logoTimer = logoTimer + 100;
}
startActivity(new Intent("com.jom.testcdt2.CLEARSCREEN"));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
finish();
}
}
};
logoTimer.start();
}
When I press button bCancel, it starts a new activity, but timer is still running and after 10 seconds it starts CLEARSCREEN. 当我按下按钮bCancel时,它会启动一个新活动,但是计时器仍在运行,10秒后它会启动CLEARSCREEN。 On click I want timer to stop.
点击我希望计时器停止。 How can I do that?
我怎样才能做到这一点?
I would recommend using a CountDownTimer
: 我建议使用
CountDownTimer
:
final CountDownTimer myTimer = new CountDownTimer(10000, 5000) {
@Override
public void onFinish() {
//DO SOMETHING AFTER 10 000 ms
}
@Override
public void onTick(long millisUntilFinished) {
//DO SOMETHING EVERY 5 000 ms until stopped
}
}
myTimer.start() //Starts it
myTimer.cancel() //Stops it
And instead of writing 而不是写作
(new Intent("com.jom.testcdt2.CANCELCLASS")
you should use 你应该使用
(new Intent(YOURCLASS.this, CancelClass.class)
Could you try to have a boolean value that you check in the while loop, and set it to true when you press the cancel button? 您可以尝试使用在while循环中检查的布尔值,并在按下取消按钮时将其设置为true吗?
boolean pressedCancel = false;
....
while (logoTimer < 10000 && !pressedCancel) {
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.