2011-05-05 48 views
0

我在我的活動A中有一個計數器,在完成它之後,我必須執行一些操作。問題是,當我進入另一個活動,然後回到本活動A時,計數器正在重置,這不應該發生。爲什麼這樣?重新開始活動時計數器沒有恢復

我的計數器類是:

private class Counter extends CountDownTimer { 

     public Counter(long millisInFuture, long countDownInterval) { 
      super(millisInFuture, countDownInterval); 
     } 

     public void onFinish() { 
      //perform some actions 
     } 

     public void onTick(long millisUntilFinished) { 
      int minute = (int) (millisUntilFinished/(1000 * 60)); 
      int sec = (int) ((millisUntilFinished - (minute * 60 * 1000))/1000); 
      minuteText.setText("" + minute); 
      secondText.setText("" + sec); 
      } 
     } 
    } 

我打電話給我的櫃檯在onCreate()爲:

new Counter(countdowntime * 60 * 1000), 1000).start(); 

如何解決這個問題?請回復。提前致謝。

+0

我沒有這門課的經驗。如果您將定時器的狀態保存在兩個EditText Views中。使用標準技術,即使在方向更改時,這些字段的狀態也應該保​​持不變,以便您可以使用保存在這些視圖中的狀態重新初始化onCreate中的計數器。一個更清潔的解決方案可能是將剩餘時間寫入onSaveInstanceState中的包並讀取onCreate中的包 – JAL 2011-05-05 06:55:13

回答

0

我得到了它的工作......問題是我使用活動堆棧......在調用意圖時,我們應該給它一個id,以便它唯一標識每個意圖。當我給了它,它得到了工作。

0

你或許應該開始你的櫃檯在onResume,而不是在onCreate和暫停在櫃檯(或者你可以完成的計數器,如果isFinishing()回報true在)。