Publi

  • Cancelando y reanudando una tarea con Timer y TimerTask en Java

    Hemos estado viendo cómo utilizar TimerTask para programar tareas en el tiempo y cómo pasarle argumentos para hacer una funcionalidad más completa. Ahora vamos a ver cómo podemos cancelar una tarea periódica que ha sido programada (eso es fácil), pero pueden surgir problemas a la hora de reanudar la tarea, para lo cual propongo algunas ideas.

    Lo primero, es tener un código básico para lanzar una tarea y cancelarla:
    TimerEx.java

    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
    import java.util.Timer;
    import java.util.TimerTask;

    class TimerEx
    {
        public static void main(String arglist[])
        {
        Timer timer;
        timer = new Timer();

        TimerTask task = new TimerTask()
            {
            int tic = 0;

            @Override
            public void run()
            {
                System.
    Leer artículo completo
  • Introducción a Timer y TimerTask en Java.

    Los timers son una herramienta muy útil para lanzar una tarea cada cierto tiempo, por ejemplo, si estamos conectados a un servidor, podemos enviar información de estado para no desconectarnos, o lanzar una tarea a una hora determinada, o incluso puede servir para crear una animación (ya que con el tiempo va variando aquello que hayamos dibujado, o va cambiando el fotograma).
    El ejemplo más sencillo de un timer puede ser lo siguiente:

    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
    import java.util.Timer;
    import java.util.TimerTask;

    class TimerEx {
        public static void main(String arglist[]) {
        Timer timer;
        timer = new Timer();

        TimerTask task = new TimerTask() {
            int tic=0;

            @Override
            public void run()
            {
                if (tic%2==0)
                System.
    Leer artículo completo