¿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() 
  • ¿Cómo manejar la accesibilidad en la vista personalizada cuando no está diseñada para manejar clics?
  • ¿Cómo manejar adecuadamente una perspectiva variable nula en kotlin?
  • Kotlin: Ordenando | Ubicación de la operación de intercambio
  • Daga 2: no se puede encontrar la class generada en Intellij Idea (Kotlin)
  • Android Studio 3.0 + Kotlin Two Gradle Daemon
  • Falló el inicio de session de Firebase en la aplicación de Android
  • Observable para reutilizar ejecuciones de operadores
  • Cierre / oculte el keyboard suave de Android con Kotlin
  • ¿Por qué Kotlin Array <T> no implementa Iterable <T>
  • Kotlin: ¿Cuál es la diferencia entre Aplicar y También
  • Manera idiomática de manejar lists anulables o vacías en Kotlin