2012-04-05 40 views

回答

22

您使用Timer,並且當您使用任何schedule-方法安排TimerTask時,會自動爲您創建一個新的線程。

實施例:

Timer t = new Timer(); 
t.schedule(myTimerTask, 1000L); 

這將在屬於該定時器每秒一次一個線程中運行myTimerTask一個定時器。

+0

上面的代碼創建一個'Timer',一秒後在一個線程_only中運行一次任務。要每秒運行一次任務,請使用這個重載的'schedule'方法:'schedule(TimerTask task,long delay,long period)'。例如,'timer.schedule(myTimerTask,1000L,2000L)'創建一個定時器,該定時器在初始延遲1秒後每2秒運行一次。這裏是鏈接到方法[鏈接](https://developer.android.com/reference/java/util/Timer.html#schedule(java.util.TimerTask,long,long))[link] – 2018-01-17 07:28:26

+0

鏈接在上述評論中被錯誤地格式化了。這裏是[定時器](https://developer.android.com/reference/java/util/Timer.html) – 2018-01-17 07:36:00

47

我已經實現了這樣的事情,它工作正常:

private Timer mTimer1; 
    private TimerTask mTt1; 
    private Handler mTimerHandler = new Handler(); 

    private void stopTimer(){ 
     if(mTimer1 != null){ 
      mTimer1.cancel(); 
      mTimer1.purge(); 
     } 
    } 

    private void startTimer(){ 
     mTimer1 = new Timer(); 
     mTt1 = new TimerTask() { 
      public void run() { 
       mTimerHandler.post(new Runnable() { 
        public void run(){ 
         //TODO 
        } 
       }); 
      } 
     }; 

     mTimer1.schedule(mTt1, 1, 5000); 
    } 
+1

真棒答案的正確鏈接...爲什麼沒有upvotes? .... – 2013-01-10 06:22:13

+0

計劃中的1是什麼? – Praneeth 2016-02-09 06:10:55

+0

計劃中的1是第一次執行計劃的TimerTask之前的時間量(以毫秒爲單位)。 5000是後續執行之間以毫秒爲單位的延遲量。 – Cogentleman 2016-05-05 23:54:13

7

這是計時器任務很好的例子。

Timer timerObj = new Timer(); 
    TimerTask timerTaskObj = new TimerTask() { 
     public void run() { 
      //perform your action here 
     } 
    }; 
    timerObj.schedule(timerTaskObj, 0, 15000); 
相關問題