Hacer un temporizador de intervalo en Java android

Tengo planes para crear una aplicación de intervalo utilizando temporizadores. Debería ser sólo el más básico Así que voy a tener que añadir un poco más cuando he entendido los conceptos básicos. Lo que quiero lograr es seleccionar el número de minutos que un intervalo debe durar, sin embargo, cuántas veces este intervalo debe ir. Como un intervalo que dura 1 minuto y va 8 veces. La pregunta es qué cronómetro es mejor utilizar? Me he probado en el Android Countdown Timer y parece que funciona. ¿Pero hay otro que es mejor?

Siempre recomendaría usar un Handler .

Es un poco más de trabajo que las clases incorporadas, pero me parece que es mucho más eficiente y tienes más control sobre ella.

El Handler es una clase que manejará la ejecución de código sobre un Looper / Thread específico por defecto, el Thread es creado en, De lo contrario puede especificar donde el Handler ejecuta su código pasando el Looper al constructor Handler como – new Handler(Looper.getMainLooper());

La razón por la que recomendaría el looper es porque usted tiene una mayor flexibilidad de control, ya que es una abstracción ligeramente más baja sobre los métodos TimerTask .

Generalmente son muy útiles para ejecutar código a través de subprocesos. Por ejemplo, útil para canalizar datos a través de subprocesos.

Los dos usos principales son:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Handler h = new Handler(); h.postDelayed(new Runnable() { private long time = 0; @Override public void run() { // do stuff then // can call h again after work! time += 1000; Log.d("TimerExample", "Going for... " + time); h.postDelayed(this, 1000); } }, 1000); // 1 second delay (takes millis) } 

¡Uso simple!

O puede usar mensajes que reducen la creación de objetos. Si usted está pensando en la actualización de alta velocidad de la interfaz de usuario, etc – esto reducirá la presión sobre el recolector de basura.

 class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyTimers timer = new MyTimers(); timer.sendEmptyMessage(MyTimers.TIMER_1); timer.sendEmptyMessage(MyTimers.TIMER_2); } public static class MyTimers extends Handler { public static final int TIMER_1 = 0; public static final int TIMER_2 = 1; @Override public void handleMessage(Message msg) { switch (msg.what) { case TIMER_1: // Do something etc. Log.d("TimerExample", "Timer 1"); sendEmptyMessageDelayed(TIMER_1, 1000); break; case TIMER_2: // Do another time update etc.. Log.d("TimerExample", "Timer 2"); sendEmptyMessageDelayed(TIMER_2, 1000); break; default: removeMessages(TIMER_1); removeMessages(TIMER_2); break; } } } } 

Obviamente esto no es una implementación completa, pero debería darle una ventaja.

  • Android: Acceso al elemento de interfaz de usuario desde el subproceso del temporizador
  • ¿Cómo agregar tiempo al temporizador de cuenta atrás?
  • Android: contador simple del tiempo
  • Android ViewPager cambia automáticamente la página
  • Actualizar TextView utilizando Timer y ArrayList
  • Cómo detener el temporizador handler.postDelayed () en Android
  • Detener el temporizador y continuar
  • Temporizador de cuenta atrás Android La barra de progreso circular no coincide con el temporizador
  • Android / phonegap - Tiempo de respuesta del clic lento
  • Android ejecutar hilo en el servicio cada X segundos
  • Android ¿cuántos hilos puedo tener?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.