回答:
警告は、現在のスレッドをブロックするメソッドに関するものであり、コルーチンは適切に中断できません。このようにして、コルーチンのすべての利点を失い、再びスレッドごとに1つのジョブにダウングレードします。
それぞれのケースは異なる方法で処理する必要があります。一時停止可能なhttp呼び出しの場合、ktor httpクライアントを使用できます。しかし、場合によってはライブラリが存在しない場合があるため、独自のソリューションを作成するか、この警告を無視できます。
withContext(Dispatchers.IO)
。少なくともブロックコードをで実行できます。
withContext(Dispatchers.IO)
、それはもはやブロッキングされておらず、警告は正しくありませんよね?
@Throws(IOException::class)
(Kotlin 1.3.61)で注釈が付けられた一時停止関数を呼び出すときにもこの警告が表示されます。それが意図されているかどうかはわかりません。とにかく、その注釈を削除するか、それをクラスに変更することで、この警告を修正できますException
。