En el desarrollo, a veces tenemos la necesidad de realizar una determinada tarea en un período de tiempo fijo. Por ejemplo, los controles de la UI necesitan cambiar con el tiempo, podemos usar las clases de herramientas de temporizadores proporcionados por Java, a saber, Timer y TimeTask.
El temporizador es una clase ordinaria con varios métodos importantes; TimeTask es una clase abstracta con un método abstracto run (), similar al método run () en un hilo. Usamos un temporizador para crear un objeto y luego usamos el método de programación de este objeto para completar esta operación de intervalo.
El método de programación tiene tres parámetros
El primer parámetro es un objeto de tipo TimeTask. El método run () para implementar TimeTask es una tarea que debe ejecutarse periódicamente;
Hay dos tipos del segundo parámetro. El primero es el tipo largo, lo que indica cuánto tiempo lleva iniciar la ejecución, y el otro es el tipo de fecha, lo que indica que comienza la ejecución después de ese tiempo;
El tercer parámetro es el ciclo de ejecución, que es de tipo largo.
El método de programación también tiene una sobrecarga de ejecución de dos parámetros. El primer parámetro sigue siendo TimeTask, y la segunda forma representada desde hace mucho tiempo indica cuánto tiempo se ejecutará después de que se ejecute. Para la fecha, significa que se ejecutará después de un cierto tiempo.
El temporizador es un hilo que utiliza el método de programación para completar la programación de TimeTkask. Múltiples TimerTasks pueden compartir un temporizador. Es decir, el objeto del temporizador llama al método de programación una vez, que crea un hilo. Después de llamar al cronograma una vez, TimeTask se encenderá ilimitadamente y usará Timer's Cancel () para detener la operación. Por supuesto, después de que el mismo temporizador ejecuta el método Cancel () una vez, todos los subprocesos de temporizador se terminan.
uso:
// Verdadero significa que este temporizador se ejecuta en modo Daemon (baja prioridad, el temporizador finaliza el programa y termina automáticamente) java.util.timer temporizador = nuevo java.util.timer (true); TEMPLACIÓN TIMERTASK = new TimeTask () {public void run () {// Pon el código que debe ejecutarse cada vez se coloca aquí. }}; // Los siguientes son varios métodos para programar tareas: // La hora es Tipo de fecha: Ejecutado una vez en un momento especificado. Timer.schedule (tarea, tiempo); // La primera vez es el tipo de fecha, el período es largo, lo que indica que se ejecuta cada milisegundos desde la primera vez. Timer.schedule (tarea, primera vez, período); // El retraso es tipo largo: el retraso se ejecuta una vez cada milisegundos a partir de ahora. Timer.schedule (tarea, retraso); // El retraso es largo, el período es largo: después de que los milisegundos de retraso se pasan a partir de ahora, ejecute cada milisegundos. Timer.schedule (tarea, retraso, período); Código de muestra:
importar android.app.activity; importar android.os.bundle; importar android.os.handler; importar android.os.message; import java.util.timer; import java.util.timerTask; La clase pública TimeTaskActivity extiende la actividad {Temporizador privado MTIMER; @Override protegido void onCreate (Bundle SaveDInStancestate) {super.oncreate (saveDInStancestate); // init temporizador mtimer = new Timer (); // Tarea de inicio del temporizador SetTimerTask (); } @Override Protected Void OnDestrOY () {super.onstroy (); // Cancelar temporizador mtimer.cancel (); } private void settimerTask () {mtimer.schedule (new TimerTask () {@Override public void run () {mensaje mensaje = nuevo mensaje (); mensaje.what = 1; doactionHandler.sendMessage (mensaje);}}, 1000, 1000/* significa que después de 1000 milisegundos, línea cada 1000 Milliseconds*/); } / ** * HAGA ALGUNA ACCIÓN * / PRIVADO DOACTIONHANDLER = new Handler () {@Override public void HandLemessage (Mensaje msg) {super.handlemessage (msg); int msgid = msg.what; switch (msgid) {case 1: // haz una ruptura de acción; predeterminado: ruptura; }}}; }Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.