¿Cómo replace el doAsync de Anko, uiThread con las funciones de kotlin 1.1.0 kotlinx-coroutines-core lib?

tengo un código como:

doAsync{ ... uiThread{ ... } } 

¿Cómo puedo replace doAsync y uiThread con algo nuevo de kotlinx-coroutines-core lib?

Actualización desde que la biblioteca coroutines se actualizó a la versión 0.13:

Ahora puede agregar una dependencia en la compile 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.13' a su gradle para importar el context de la UI usuario de la UI específica de Android y usarlo así:

 async(CommonPool) { run(UI) { ... } } 

Ya no es necesario definir su propio despachador de corrutinas, como todavía era necesario en el momento de la respuesta original a continuación.


Debería funcionar así:

 async(CommonPool) { run(MainThread) { ... } } 

El problema es que ahora mismo, no hay una implementación estándar de MainThread que lo lleve de return al hilo principal en Android (¡aunque vendrá en una versión futura!), Por lo que tendría que hacerlo usted mismo, por ejemplo, así:

 val MainThread = object : Executor { private val mHandler = Handler(Looper.getMainLooper()) override fun execute(command: Runnable) { mHandler.post(command) } }.toCoroutineDispatcher() 
  • Lista de Kotlin vs array de
  • Akka stream, upstream no produce valores
  • JUnit5 testings parametrizadas a nivel de class
  • ¿Cómo saltarse los models proguard utilizados por retrofit2 que está en el package base?
  • JAX-RS (Apache CXF) Inyección de context a través de setter
  • ejecución de inicializador de propiedad kotlin en testings JUnit
  • Escribir un timer usando Handler en Kotlin
  • No se puede cambiar el text de ActionMenuItemView con RxKotlin
  • Comstackdor de Kotlin a JavaScript en JavaScript?
  • Convierte el código de RxJava a Kotlin correctamente
  • cómo implementar Switch usando Data binding en android