2012-10-05 42 views
0

我正在按如下方式正確地對活動執行定時任務。但是,當執行onResume活動時,將引發一個exeption,「計時器任務已計劃好」。一旦執行任務,我取消定時器。如何解決它?謝謝android定時器異常onResume

final Runnable setButton = new Runnable() { 
     public void run() { 
      myClass.aBridge.button_back.setVisibility(View.INVISIBLE); 
       timer.cancel(); 
     } 
    }; 

    TimerTask task = new TimerTask(){ 
     public void run() { 
      webPush.this.runOnUiThread(setButton); 
     } 
    }; 

    @Override 
    protected void onResume() { 
     super.onResume(); 

      timer = new Timer(); 
      timer.schedule(task, 5000); 

    } 

任務的onResume之前調用一次爲:

 timer = new Timer(); 
     timer.schedule(task, 5000); 
+0

你有一個onDestroy或onPause方法嗎? –

+0

是的,定時器也取消onPause,即在離開活動 – Jaume

回答

2

只能調用timer.schedule()一次爲每個TimerTask的實例。在計劃它之前創建一個新的實例。

編輯:對於您的代碼,請勿在您定義它的位置初始化TimerTask成員變量。相反,在安排它之前,在您的onResume()中創建一個新實例。

+0

之前執行太棒了!加工!非常感謝。 – Jaume