En Java a diferencia de otros lenguajes no tenemos un objeto timer tan fácil de manipular, existe por suerte la clase que nos ayudará pero la implementación es un tanto más larga. Debemos crear manualmente las tareas a ser asignadas, los métodos de inicio, detención y reinicio.
En éste ejemplo sencillo mostraré como imprimir simplemente el tiempo que va pasando con el timer. Pero ustedes podrán agregar más código en la clase llamada MiTarea, incluso podrán crear varias sub clases e ir asignando al schedule del timer y el período de ejecución que van necesitando.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package comunes; import java.io.IOException; import java.util.Timer; import java.util.TimerTask; public class Reloj { Timer timer = new Timer(); // El timer que se encarga de administrar los tiempo de repeticion public int segundos; // manejar el valor del contador public boolean frozen; // manejar el estado del contador TIMER AUTOMATICO -- True Detenido | False Corriendo // clase interna que representa una tarea, se puede crear varias tareas y asignarle al timer luego class MiTarea extends TimerTask { public void run() { segundos++; System.out.println(segundos); // aqui se puede escribir el codigo de la tarea que necesitamos ejecutar }// end run() }// end SincronizacionAutomatica public void Start(int pSeg) throws Exception { frozen = false; // le asignamos una tarea al timer timer.schedule(new MiTarea(), 0, pSeg * 1000 * 60); }// end Start public void Stop() { System.out.println("Stop"); frozen = true; }// end Stop public void Reset() { System.out.println("Reset"); frozen = true; segundos = 0; }// end Reset }// end Reloj |








en
en
en
como hago para que detenga el contador??? omas bien cual es la forma correcta de instanciar o llamar los metodos en el main???
mmm tengo una duda ..sabes como usar un timer con un webservice?, la idea es la de poder controlar el tiempo de conexion ..si este sobrepasa x tiempo que el timer corte la conexion .
ojala me ayudes ocn este problemita
No hace falta que reinvestes la rueda con un timer, simplemente puedes setear el timeout de tu WS..