计时器不会在android中停止

时间:2010-03-04 07:22:43

标签: android timer

我在android中创建了一个应用程序并使用了这样的计时器..

try {
    CountDownTimer  start1 = new CountDownTimer(20000, 1000) {

        public void onTick(long millisUntilFinished) {
                TextView timeShow = (TextView)findViewById(R.id.showTime);
        timeShow.setText(" "+" 00:" +millisUntilFinished / 1000);
            }

但我的问题是我不知道如何停止计时器。有什么想法吗?

我已经尝试过:

quitApplication.setOnClickListener(new OnClickListener() {
    public void onClick(View v) { 
        start1.cancel(); 
        Intent i = new Intent(v.getContext(), startGame.class);
        startActivity(i);
        // TODO Auto-generated method stub 
    } 
}); 

3 个答案:

答案 0 :(得分:10)

start1.cancel()是调用取消计时器的正确方法。

您没有提供有关您获得的错误或为什么它不适合您的任何详细信息,但我假设您的程序未编译,因为您的变量start1本地变量< / strong>即可。它可能是您try块所处方法的本地化。这意味着您的OnClickListener构造不知道start1是什么。

要解决这个问题,只需声明 start1作为类变量(在所有方法之外,但在类中):

public class someClass {

CountDownTimer start1;
// blah some code
public void someMethod {
   try {
      start1 = new CountDownTimer() { //etc

这样做将允许其他方法识别start1

并与之互动

答案 1 :(得分:2)

我知道这已经有一年了,但是对于未来的读者来说,你只需要把计时器作为决赛。

喜欢这样

final CountDownTimer  start1 = new CountDownTimer(20000, 1000) {}

应该有效

答案 2 :(得分:1)

当你想要停止计时器时调用start1.cancel()