Saltar al contenido

Cómo pausar y reanudar una TimerTask/Timer

Hola usuario de nuestra página web, hemos encontrado la solución a tu pregunta, has scroll y la obtendrás aquí.

Solución:

Después de TimerTask se cancela, no puede volver a ejecutarse, debe crear una nueva instancia.

Lea los detalles aquí:

https://stackoverflow.com/a/2098678/727768

ScheduledThreadPoolExecutor se recomienda para el código más nuevo, maneja los casos como excepciones y tareas que tardan más tiempo que el intervalo programado.

Pero para su tarea, TimerTask debería ser suficiente.

Así es como lo hice. Agregar pauseTimer booleano donde sea que tenga lugar la pausa (quizás el botón de escucha) y no cuente el temporizador si true.

private void timer ()
    Timer timer = new Timer();
    tv_timer = (TextView) findViewById(R.id.tv_locationTimer);
    countTimer = 0;
    timer.scheduleAtFixedRate(new TimerTask() 
        @Override
        public void run() 
            runOnUiThread(new Runnable() 
                @Override
                public void run() 
                    String s_time = String.format("%02d:%02d:%02d",
                            countTimer / 3600,
                            (countTimer % 3600) / 60,
                            countTimer % 60);
                    tv_timer.setText(s_time);
                    if (!pauseTimer) countTimer++;
                
            );
        
    , 1000, 1000);

valoraciones y comentarios

Si posees alguna sospecha y forma de limar nuestro post puedes dejar un comentario y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *