doAsync Kotlin-android no funciona bien

Estoy usando una function de callback cuando termina la synchronization. pero no funciona bien 🙁

mi caso:

fun function1(callback : (obj1: List<ObjT1>,obj2: List<ObjT1>)-> Unit?){ doAsync { //long task uiThread { callback(result1, result2) } } } 

se llama a la callback, pero result1 y result2 (lists) están vacíos. Revisé previamente el contenido de la list.

EDITAR: PROBLEMA: mi callback es una function que recibe 2 objects resultado 1 y resultado2, el problema es que la function de callback a veces recibe los resultados vacíos, reviso su contenido y no está vacío.

Puede ser porque ha declarado el tipo de devolución como Unit? pero están devolviendo dos valores. Una solución rápida sería poner result1 y result2 en una matriz.

Considera usar las corotinas de Kotlin. Coroutines es una característica más nueva en Kotlin. Todavía está técnicamente en fase experimental, pero JetBrains nos ha dicho que es muy estable. Lea más aquí: https://kotlinlang.org/docs/reference/coroutines.html

Aquí hay un código de muestra:

 fun main(args: Array<String>) = runBlocking { // runBlocking is only needed here because I am calling join below val job = launch(UI) { // The launch function allows you to execute suspended functions val async1 = doSomethingAsync(250) val async2 = doSomethingAsync(50) println(async1.await() + async2.await()) // The code within launch will // be paused here until both async1 and async2 have finished } job.join() // Just wait for the coroutines to finish before stopping the program } // Note: this is a suspended function (which means it can be "paused") suspend fun doSomethingAsync(param1: Long) = async { delay(param1) // pause this "thread" (not really a thread) println(param1) return@async param1 * 2 // return twice the input... just for fun } 
  • Extensiones de Kotlin / properties sintéticas: mismo object en múltiples invocaciones de Fragment.onViewCreated ()
  • ¿Cómo entender una diversión con = en Kotlin?
  • Uso de LiveData con data binding
  • ¿Cuál es el objective pnetworkingeterminado para una anotación al anotar properties en Kotlin?
  • Usar Kotlin en un module de biblioteca sin usarlo en el module de la aplicación
  • Kotlin: implementación de Function-Param en un cuerpo de un llamador
  • Procesador de anotación Kotlin: no puede hacer que funcione
  • Problema de actualización de Android Gradle plugin 3.0.0
  • ¿Es la mejor manera de usar lateinit?
  • escriba un literal integer hexadecimal igual a Int.MIN_VALUE en Kotlin
  • Migración de Groovy gradle a Kotlin gradle (falta extensión o conversión de cierre, no estoy seguro)