kotlin - 如何使 "inappropriate blocking method call"合适?

标签 kotlin okhttp kotlin-coroutines moshi

我目前正在尝试更多地利用 kotlin 协程。但我面临一个问题:在这些协程中使用 moshi 或 okhttp 时,我收到警告:

“不适当的阻塞方法调用”

解决这些问题的最佳方法是什么?我真的不想不合适;-)

最佳答案

警告是关于阻塞当前线程和协程的方法无法正确挂起。这样,您将失去协程的所有好处并再次降级为每个线程一个作业。
每种情况都应以不同的方式处理。对于可暂停的 http 调用,您可以使用 ktor http client .但有时没有适合您的库,因此您可以编写自己的解决方案或忽略此警告。
编辑:withContext(Dispatchers.IO)或者可以使用一些自定义调度程序来解决该问题。感谢您的评论。

关于kotlin - 如何使 "inappropriate blocking method call"合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680028/

相关文章:

android - Kotlin 协程返回字符串

java - 为什么 Kotlin/Java 没有抢占式调度程序的选项?

javascript - 使用 Cookie Jar 在 React Native Activity 和 Native Android Activity 之间共享 cookie

android - 如何在 Android Studio 中使用 retrofit2 获取 json 日志?

android - 处理 Kotlin Coroutines 中自定义 okhttp 拦截器引发的异常

android - 如果我可以将 Flow 和 StateFlow 与生命周期范围\viewLifecycleOwner.lifecycleScope 一起使用,那么在 ViewModel 中使用 LiveData 有什么意义

android - 导航 popUpTo 和 PopUpToInclusive 没有清除后台堆栈

java - kotlin 中的静态最终字段继承

java - String.format 在 Kotlin 和 Java 中工作异常

http-headers - 当服务器使用Retrofit返回相同的响应时,如何避免解析?