Handler postDelay () desde el hilo de background

¿Alguien puede ver alguna razón por la cual esto no estaría funcionando?

override fun resetAnimations() { Log.d("MainActivity", "start") Handler().postDelayed( { reset()}, 1500) Log.d("MainActivity", "end") } fun reset(){ Log.d("MainActivity", "reset") } 

Estoy llamando a esto en algún lugar arbitrario de mi actividad, pero nunca se llama al método reset (). En los loggings, solo recibo lo siguiente

 D/MainActivity: start 

Parece que su locking en postDelay … incluso cuando establezco el valor en 1 o reemploop PostDelay con pose, no funciona.

Actualizar:

cuando lo implemento así, funciona;

  private lateinit var handler : Handler override fun onCreate(savedInstanceState: Bundle?) { handler = Handler() resetAnimations() } override fun resetAnimations() { handler.postDelayed( { reset()}, 1500) } 

Creo que el problema tiene algo que ver con el hecho de que estaba llamando a resetAnimations () desde un hilo de background y creando el controller en el hilo de background.

Estaba llamando a resetAnimations() desde un hilo de background.

Ese es el problema. Su controller no pudo publicar un Message en un MessageQueue , porque no hay ningún MessageQueue en su hilo de background.

Entonces, en lugar de esto:

 Handler().postDelayed( { reset()}, 1500) 

Realiza esto:

 Handler(Looper.getMainThread()).postDelayed( { reset()}, 1500)