Actualmente estoy tratando de aprovechar más las corotinas de Kotlin. Pero me enfrento a un problema: cuando uso moshi u okhttp dentro de estas corutinas recibo una advertencia:
"llamada de método de bloqueo inapropiado"
¿Cuál es la mejor manera de arreglar esto? Realmente no quiero ser inapropiado ;-)
Respuestas:
La advertencia trata sobre los métodos que bloquean el hilo actual y la rutina no puede suspenderse correctamente. De esta manera, perderá todos los beneficios de las rutinas y volverá a la calificación anterior a un trabajo por hilo.
Cada caso debe ser manejado de manera diferente. Para llamadas http suspendibles, puede usar el cliente ktor http . Pero a veces no hay una biblioteca para su caso, por lo que puede escribir su propia solución o ignorar esta advertencia.
fuente
withContext(Dispatchers.IO)
.withContext(Dispatchers.IO)
bloqueo, ya no está bloqueando y la advertencia no es correcta, ¿verdad?También recibe esta advertencia cuando llama a una función de suspensión que está anotada con
@Throws(IOException::class)
(Kotlin 1.3.61). No estoy seguro si eso está destinado o no. De todos modos, puede corregir esta advertencia eliminando esa anotación o cambiándola aException
clase.fuente