Programando o Intentándolo

Como ejecutar un método a una hora especifica en Java

La clase Timer de java nos permite ejecutar parte de nuestro código a una hora especifica o después de un periodo de tiempo fijado y también nos ofrece la posibilidad de repetir la ejecución cada un intervalo de tiempo determinado tanto si se indica una hora para que se ejecute como si lo que se indica es un periodo de tiempo hasta que se ejecute nuestro código.

De esta forma podemos programar el envió de emails, la generación de informes, copias de seguridad, etc. para que se ejecuten a la hora que queramos y además con la posibilidad de repetirlo cada 2 horas, cada día, semana, mes o el tiempo que se desee únicamente usando las clases Timer y TimerTask.

Vamos a ver mediante un ejemplo como podemos ejecutar un método a la hora exacta que deseemos y que ejemplo más claro y más sencillo que un despertador. Por ejemplo vamos a hacer que el despertador “suene” de lunes a viernes a las 8 de la mañana, que el sábado no suene y que el domingo tampoco suene y que se apague para que la semana siguiente ya no suene.

Para programarlo a las 8 de la mañana obtenemos la fecha actual del sistema y ponemos la hora del despertador a las 8 de ese día si aun no han llegado o del día siguiente si ya es mas tarde y establecemos el tiempo de repetición en 24 horas para que se repita todos los días a la misma hora. Creamos el temporizador y le pasamos como parámetros un TimerTask (Temporizador lo veremos después) y la hora a la que tiene que ejecutarse y cada cuanto tiempo tiene que hacerlo.

Si la parte de crear el Timer es sencilla el TimerTask no es más complicado ya que solamente hace falta crear una clase que extienda de TimerTask y sobrescribir el método run con lo que queremos que haga, en nuestro caso dependiendo del día de la semana sonara el despertador o no lo hará o se apagará.

Lo único destacable de esta clase es la forma en la que podemos hacer que el temporizador deje de ejecutarse aunque tenga un tiempo de repetición que le haga que se repita cada cierto tiempo y es tan sencillo como usar el método cancel() de TimerTask.

De esta forma tan sencilla podemos programar en java la ejecución de un método o un fragmento de código en el momento preciso que queramos.

Como siempre si quieres descargarte el proyecto completo para probarlo puedes hacerlo desde este enlace.

  • Facebook
  • Twitter
  • Delicious
  • Google Plus
  • LinkedIn
  • StumbleUpon
  • Pinterest
  • Digg
  • Email
  • RSS
  • Print
  • Add to favorites