2012-03-06 146 views
0

我在我的应用程序设置有CountDownTimer这样的:倒计时时钟方法

new CountDownTimer(11000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     clock.setText("Seconds Remaining: " + millisUntilFinished/1000); 
     secsrem = (int) millisUntilFinished/1000; 
    } 

    public void onFinish() { 
     //...} 
    }.start(); 

我需要访问onFinish方法的另一种方法在我的应用程序,这样,当按下一个按钮,它会调用定时器onFinish方法。我将如何做到这一点?

回答

1

你的计时器只是存储在一个变量:

public class YourClass { 

public CountDownTimer timer = null; 

... 
timer = new CountDownTimer(11000, 1000) { 

     public void onTick(long millisUntilFinished) { 
      clock.setText("Seconds Remaining: " + millisUntilFinished/1000); 
      secsrem = (int) millisUntilFinished/1000; 
     } 

     public void onFinish() { 
      //...} 
     } 

timer.start(); 
... 

然后,你可以这样做:

timer.onFinish(); 

顺便说一句,我想你不应该叫onFinish自己,它会通过系统调用时时间到了。如果要取消计时器改用:

timer.cancel(); 
+0

我仍然得到一个错误,我已经存储在变量计时器如图所示,但是当我尝试并调用timer.onFinish();它说它无法解决。 – nexus490 2012-03-06 14:52:52

+0

我会多解释一下,我有一个显示数学表达式的应用程序,用户有10秒钟来回答这个问题。当他们按下#键时,他们的答案会被检查并显示下一个问题,但是如果用户用完了时间,那么就会转到下一个问题。 – nexus490 2012-03-06 14:56:38

+0

确保'timer'变量可以从你调用它的地方访问。看到我编辑的答案。 – Caner 2012-03-06 15:00:23