2011-11-09 17 views

Respuesta

16

Timer.schedule

Programa un temporizador que transcurran en el futuro.

ej .:

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

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

Gracias ... funcionó – ravi

4

Usted debe buscar en los métodos de la clase Scheduler. Le permiten programar comandos en una periodicidad fija (una vez cada n milisegundos), un retraso fijo (espere n milisegundos después de completar el comando), o solo comandos aplazados de una sola vez.

Los métodos de esta clase proporcionan una ventaja sobre Timer.schedule, ya que proporcionan más flexibilidad en cuanto a cuándo se invocará su comando y requieren que usted codifique menos.

+0

... pero un temporizador se puede cancelar o reprogramar, no un ScheduledCommand. –

0

Para quitar código repetitivo, hice este método (requiere GWT 2.8 o superior):

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); 
} 

Así que ahora se puede simplemente hacer esto (por ejemplo: retardo de 2 segundos, y luego llamar a myMethod):

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

Fácil. :-)

Cuestiones relacionadas