2012-04-05 30 views

cevap

22

Timer kullanıyorsunuz ve TimerTask'u, schedule-yöntemlerinden herhangi birini kullanarak zamanladığınız zaman otomatik olarak yeni bir Özet oluşturur.

Örnek: Bu kez o Timer her saniye ait bir Thread myTimerTask çalıştıran bir Timer oluşturur

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

.

+0

Yukarıdaki kod, bir saniye sonra bir kere _only iş parçasında bir "Zamanlayıcı" görevini çalıştırır. Bir saniyede bir görev çalıştırmak için, bu aşırı yüklenmiş 'zamanlama' yöntemini kullanın: 'zamanlama (TimerTask görevi, uzun gecikme, uzun süre). Örneğin, 'timer.schedule (myTimerTask, 1000L, 2000L)', 1 saniyelik ilk gecikme sonrasında her 2 saniyede bir çalışan bir zamanlayıcı oluşturur. İşte [link] yönteminin linki (https://developer.android.com/reference/java/util/Timer.html#schedule (java.util.TimerTask, uzun, uzun)) [bağlantı] –

+0

Bağlantı Yukarıdaki yorumda yanlış biçimlendirildi. İşte [Timer yöntemleri] için düzeltilmiş bağlantıdır (https://developer.android.com/reference/java/util/Timer.html) –

47

Böyle bir şey uyguladık ve iyi çalışıyor:

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

müthiş cevap ... neden hiçbir upvotes? .... –

+0

Zamanlamada 1 nedir? – Praneeth

+0

Zamanlama, programlanmış 1 TimerTask'ın ilk çalıştırılmasından önceki milisaniye cinsinden süredir. 5000, sonraki yürütme arasında milisaniye cinsinden gecikme miktarıdır. – Cogentleman

7

Bu zamanlayıcı görev için mükemmel bir örnektir.

Timer timerObj = new Timer(); 
    TimerTask timerTaskObj = new TimerTask() { 
     public void run() { 
      //perform your action here 
     } 
    }; 
    timerObj.schedule(timerTaskObj, 0, 15000); 
İlgili konular