Saltar al contenido

¿Cómo crear un temporizador de cuenta regresiva simple en Kotlin?

Nuestro grupo de especialistas luego de varios días de investigación y de recopilar de datos, hemos dado con la solución, esperamos que todo este artículo sea de gran utilidad para tu trabajo.

Solución:

Puedes usar objetos de Kotlin:

val timer = object: CountDownTimer(20000, 1000) 
    override fun onTick(millisUntilFinished: Long) ...

    override fun onFinish() ...

timer.start()

El cronómetro se puede configurar para contar hacia atrás y me parece la forma más fácil.

Agregue la vista Cronómetro en su diseño xml, ejemplo


Luego en tu actividad o fragmento:

   view_timer.isCountDown = true
   view_timer.base = SystemClock.elapsedRealtime() + 20000
   view_timer.start()

Resolví mi problema con el temporizador en Kotlin así:

class Timer 

    private val job = SupervisorJob()
    private val scope = CoroutineScope(Dispatchers.Default + job)

    private fun startCoroutineTimer(delayMillis: Long = 0, repeatMillis: Long = 0, action: () -> Unit) = scope.launch(Dispatchers.IO) 
        delay(delayMillis)
        if (repeatMillis > 0) 
            while (true) 
                action()
                delay(repeatMillis)
            
         else 
            action()
        
    

    private val timer: Job = startCoroutineTimer(delayMillis = 0, repeatMillis = 20000) 
        Log.d(TAG, "Background - tick")
        doSomethingBackground()
        scope.launch(Dispatchers.Main) 
            Log.d(TAG, "Main thread - tick")
            doSomethingMainThread()
        
    

    fun startTimer() 
        timer.start()
    

    fun cancelTimer() 
        timer.cancel()
    
//...

He usado Coroutines para un temporizador.

valoraciones y reseñas

¡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 *