2010-03-04 106 views
7

我做出的Android應用程序,並使用定時器這樣的..定時器不會停止在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 
    } 
}); 

回答

10

start1.cancel()是打電話取消計時器的正確方法。

你沒有提供有關你得到了錯誤,或者爲什麼沒有爲你工作的任何細節,但我假設你的程序沒有編譯,因爲您的變量start1局部變量。無論您使用try塊的方式,這可能都是本地的。這意味着您的OnClickListener構造不知道start1是什麼。

要解決這個問題只需聲明start1爲類變量(所有方法的類之外,但內):

public class someClass { 

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

這樣做將使其他方法來識別並start1

1

調用start1.cancel()當你想停止計時器

+0

互動我已經嘗試過但不支持。 – BIBEKRBARAL 2010-03-04 07:29:47

+0

你能告訴我們你是怎麼做到的嗎?也許,問題可能在於那裏... – Prashast 2010-03-04 07:54:18

+0

我用start1.cancel如下... quitApplication.setOnClickListener(新OnClickListener() \t \t { \t \t \t公共無效的onClick(視圖v) \t \t \t { \t \t \t \t \t \t \t start1.cancel(); \t \t \t \t
強度t i =新的意圖(v.getContext(),startGame。類); \t \t \t startActivity(i); \t \t \t \t \t \t \t // TODO自動生成方法存根 \t \t \t \t \t \t \t} \t \t \t \t \t \t \t}); – BIBEKRBARAL 2010-03-04 09:30:38

2

我知道這是一歲,但對於未來的讀者,你只需要調用計時器作爲決賽。

像這樣

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

應該工作

+1

這爲什麼會有所作爲? – 2015-08-29 05:14:16