2011-11-09 15 views

cevap

16

Timer.schedule

Tarifeleri bir zamanlayıcı gelecekte geçmesi için.

örn .:

Timer t = new Timer() { 
    public void run() { 
    Window.alert("Nifty, eh?"); 
    } 
}; 

// Schedule the timer to run once in 5 seconds. 
t.schedule(5000); 
+0

Teşekkürler .. – ravi

4

Sen Scheduler sınıfının yöntemlerine bakmak gerekir. Komutları sabit bir periyodik olarak (her n milisaniyede bir kez), sabit gecikmede (komutu tamamladıktan sonra n milisaniye bekleyin) veya bir defalık ertelenmiş komutları programlamanıza izin verir.

Bu sınıfın yöntemleri, komutunuzun ne zaman çağrılacağı konusunda daha fazla esneklik sağladığından ve daha az kod yazmanızı gerektirdiğinden, Timer.schedule'a göre bir avantaj sağlar. Yani

import com.google.gwt.user.client.Command; 
import com.google.gwt.core.client.Scheduler; 

public static void delay(int delayMs, Command afterDelay) { 
    Scheduler.get().scheduleFixedDelay(
     () -> { 
      afterDelay.execute(); 
      return false; 
     }, 
     delayMs); 
} 

şimdi sadece bu yapabilirim (örn: ve sonra myMethod 2 saniye gecikme çağrı):

+0

çalıştı ... ama bir zamanlayıcı bir ScheduledCommand değil, iptal veya yeniden planlanmış olabilir. –

0

Demirbaş kodu kaldırmak için, ben bu yöntemi (gerektirir yukarıda GWT 2.8 ya) yapılan

delay(2000,() -> myMethod()); 

Kolay. :-)

İlgili konular