2012-04-05 17 views

Respuesta

22

utiliza un Timer, y que crea automáticamente un nuevo hilo para que cuando se programa una TimerTask utilizando cualquiera de los schedule -Métodos.

Ejemplo:

Timer t = new Timer(); 
t.schedule(myTimerTask, 1000L); 

Esto crea un temporizador funcionando myTimerTask en un hilo que pertenezca a dicho temporizador una vez por segundo.

+0

El código anterior crea un 'Timer' ejecutando la tarea en un hilo _sólo una vez_ después de un segundo. Para ejecutar una tarea una vez por segundo, use este método 'schedule' sobrecargado:' schedule (tarea TimerTask, larga demora, largo período) '. Por ejemplo, 'timer.schedule (myTimerTask, 1000L, 2000L)' crea un temporizador que se ejecuta cada 2 segundos después del retraso inicial de 1 segundo. Aquí está el enlace al método [link] (https://developer.android.com/reference/java/util/Timer.html#schedule (java.util.TimerTask, long, long)) [link] –

+0

El enlace fue formateado incorrectamente en el comentario anterior. Aquí está el enlace corregido para los [métodos de Timer] (https://developer.android.com/reference/java/util/Timer.html) –

47

he implementado algo como esto y funciona bien:

private Timer mTimer1; 
    private TimerTask mTt1; 
    private Handler mTimerHandler = new Handler(); 

    private void stopTimer(){ 
     if(mTimer1 != null){ 
      mTimer1.cancel(); 
      mTimer1.purge(); 
     } 
    } 

    private void startTimer(){ 
     mTimer1 = new Timer(); 
     mTt1 = new TimerTask() { 
      public void run() { 
       mTimerHandler.post(new Runnable() { 
        public void run(){ 
         //TODO 
        } 
       }); 
      } 
     }; 

     mTimer1.schedule(mTt1, 1, 5000); 
    } 
+1

respuesta increíble ... ¿por qué no votos por votos? .... –

+0

¿Cuál es el horario de 1 en? – Praneeth

+0

El programa de 1 en es la cantidad de tiempo en milisegundos antes de la primera ejecución del TimerTask programado. El 5000 es la cantidad de retraso entre ejecuciones posteriores en milisegundos. – Cogentleman

7

Este es el ejemplo perfecto para la tarea del temporizador.

Timer timerObj = new Timer(); 
    TimerTask timerTaskObj = new TimerTask() { 
     public void run() { 
      //perform your action here 
     } 
    }; 
    timerObj.schedule(timerTaskObj, 0, 15000); 
Cuestiones relacionadas