如何让“不适当的阻塞方法调用”变得适当?

2023-12-30

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

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

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


该警告是关于阻止当前线程和协程无法正确挂起的方法。这样,您将失去协程的所有好处,并再次降级为每个线程一项作业。

每种情况都应该以不同的方式处理。对于可挂起的 http 调用,您可以使用ktor http 客户端 https://ktor.io/clients/index.html。但有时没有适合您情况的库,因此您可以编写自己的解决方案或忽略此警告。

Edit: withContext(Dispatchers.IO)或者可以使用一些自定义调度程序来解决该问题。感谢您的评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让“不适当的阻塞方法调用”变得适当? 的相关文章

  • JobService 在 android 9 中不会重新安排

    我正在尝试让我的应用程序在 Android 9 上运行 以下代码在 Android 8 上运行良好 但由于某种原因 JobService 不会在 android 9 上重新安排 它第一次被安排 但不会根据到设定的周期 class Retri
  • 在 Fragment 和 Activity 之外通过 Hilt 进行现场注入

    我想知道是否可以在片段或活动之外使用字段注入 我知道我可以使用构造函数注入 但是我想知道是否也可以使用字段注入 我认为 Dagger 是可能的 当我尝试用注入的东西做某事时yclass字段我收到此错误 lateinit property y
  • 作用域函数 apply/with/run/also/let:它们的名字从何而来?

    有很多博客文章 例如this https dzone com articles examining kotlins also apply let run and with intentions 关于标准库函数的用法apply with ru
  • Typealias - 在 Kotlin 中组合多个接口

    我对 Kotlin 中的协议组合有点生疏 我只想通过声明自定义来组合多个接口typealias This doesn t work typealias MyType ReadableInterface WritableInterface 有
  • 如何在 IntelliJ 中快速文档中换行文本?

    Ctrl Q 快速文档 后我看不到所有文本 我必须水平滚动才能看到所有内容 我无法使编辑器适合窗口 更新 问题只是符号定义 即 第一行 描述 块文本 正确换行 实际上 我不想调整此窗口的大小 因为我更喜欢将其保留在相同的位置以便快速参考 我
  • LiveData无法观察到变化

    我正在更新一个ViewModel 中 DialogFragment 的 LiveData 值 但无法获取Fragment中的值 视图模型 class OtpViewModel private val otpUseCase OtpUseCas
  • 使用 Jetpack Compose 中的导航抽屉在可组合项之间导航

    我正在尝试在 jetpack compose 中为抽屉图标 文本字段设置导航 但不确定如何正确执行 如何设置导航 以便每当我单击其中一个图标时 我都会导航到该可组合屏幕 这是目前我的主抽屉布局 Composable fun MainDraw
  • 在 Kotlin 中以编程方式更改区域设置

    我有一些在 Java 中以编程方式更改语言环境的代码 但是当我的应用程序迁移到 Kotlin 时 我无法再更改区域设置 例如 Java 中的这段代码运行得非常好 public static final void setAppLocale S
  • Kotlin 1.6.0 的 proguard / R8 删除了数据类元数据

    我有一个包含一些数据类的包 我尝试使用 Kotlin 反射在运行时访问构造函数clazz primaryConstructor 一切都按预期工作 但是当我启用 R8 时 数据类元数据被删除 例如当我检查是否KClass isData它返回
  • OkHttp javax.net.ssl.SSLPeerUnverifiedException:主机名domain.com未验证

    我几天来一直在努力让它发挥作用 我正在尝试通过以下方式连接到我的服务器https带有自签名证书 我认为现在没有任何页面或示例是我未读过的 我做了什么 按照本教程创建了 bks 密钥库 http blog crazybob org 2010
  • 如何在发布版本中使用 Zebra EMDK?

    所以我有一台 Zebra MC330M 设备 我之前创建了一个应用程序 我想使用 PDA 内置的条形码扫描仪 如果在调试模式下运行我的应用程序 一切正常 我可以读取条形码 但是如果我创建暂存或释放版本 apk 则条形码读取器不活动 因此如果
  • Kotlin 中是否有类似于 #region #endregion 的语法?

    我知道我可以使用 region endregion 包围 C 中的代码片段 Kotlin 中是否有类似的语法 谢谢 region MyRegion protected void Page Load object sender EventAr
  • Kotlin 协程阻塞 Android 中的主线程

    我是 Kotlin 和协程的新手 我有一个fun在我的活动及其内部 检查User用户名和密码 如果为真 则返回Users object 一切都好 但是当我按下按钮时 我的活动被阻止并等待响应Users login 我用这个有趣的 priva
  • Kotlin 中的单例类

    我想知道如何在 Kotlin 中创建一个单例类 以便我的 Util 类在每次应用程序执行时仅实例化一次 但是 当我将 Java 类转换为 kotlin 时 生成了以下代码 它是否正确 companion object private var
  • 从 DecorView@2da7146[MyActivity] 中找不到 ViewTreeLifecycleOwner

    从撰写更新后alpha 11 to alpha 12 or beta 01 每当我打开具有撰写视图的活动或片段时 我都会遇到此崩溃 我在用AppCompatActivity它实现了LifecycleOwner 所以这非常奇怪 java la
  • 错误:链接引用失败。 -> 排队作业

    我正在使用 Kotlin 学习 Android Material Design 一切都很顺利 直到我尝试使用 android support design widget FloatingActionButton 当我重建项目时 我收到以下错
  • 在viewpager2中禁用动画

    我有 viewpager2 和扩展 FragmentStateAdapter 的适配器 我希望用户仅通过单击选项卡布局即可转到另一个页面 我已禁用此 viewpager2 的用户输入 但是当我单击选项卡时 有页面之间快速滑动的动画 但我只想
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • 为什么我们在 Kotlin 中使用“伴生对象”来替代 Java 静态字段?

    伴生对象 的本意是什么 到目前为止我一直用它来代替Java的static当我需要它的时候 我很困惑 为什么叫 同伴 呢 这是否意味着要创建多个static属性 我必须将其分组在里面companion object block 为了立即创建一
  • dagger.hilt.android.internal.managers.ViewComponentManager$FragmentContextWrapper 无法转换为 android.app.Activity

    我正在使用具有一些自定义视图实现的第三方库 在实现中 他们调用Utils showSoftKeyboard context as Activity 这与使用片段作为 AndroidEntryPoint 一起导致以下异常 java lang

随机推荐

  • 修改(简化)主题标题以在 url 中显示

    我正在用 PHP 创建一个小型留言板 我需要 简化 主题标题以将其显示在主题的 url 中 例子 Ceci est un sujet d exemple变成ceci est un sujet d exemple J ai t la plag
  • 从 HTTP 切换到 HTTPS,失去了所有 Facebook“点赞”计数

    我从http to https两个月前 现在我失去了所有的 喜欢 即使当我使用脸书调试工具 https developers facebook com tools debug 现在它之间的计数相同http and https 有人知道这是否
  • 在类中声明动态 2D 矢量

    我们尝试使用 2D 向量 因为我们想要一个能够动态增长的 2D 数组 我们尝试过这个 在类声明中 vector
  • 使用经典 asp 收集数组中的第一个元素

    我有一个经典 asp 中的二维数组 我的目标是找到该数组中的第一个元素并将其保存在变量中 之后剩余的元素 第一个元素除外 保存在同一个数组中 例子 如果 aryReturn 是一个类似数组 aryReturn 0 0 1001 aryRet
  • Android SDK 管理器中的 MIPS 系统映像是什么?

    对于每个 SDK 我都有一个安装解决方案MIPS system image 它是什么 它有什么作用以及何时有人使用它 如果我不安装它会发生什么 它是什么 它是一个模拟器映像 可模拟具有 MIPS CPU 而不是 ARM 或 x86 CPU
  • 在 PyPy 上运行 Scrapy

    是否可以运行Scrapy on PyPy 我浏览了文档和 github 项目 但唯一的地方PyPy提到的是有一些单元测试正在执行PyPy2年前 参见PyPy support https github com scrapy scrapy pu
  • 布尔值在 Hibernate 和 MySQL 中无法正确映射

    我正在尝试将存在查询的结果 返回 TRUE FALSE 从 MySQL 数据库映射到 POJO 通过结果集转换器 我希望这个存在查询的结果可以映射到布尔值 但它没有并抛出以下错误 org hibernate PropertyAccessEx
  • Android中的ActivityThread异常?

    我正在执行搜索存储在数据库中的位置的任务 之后我必须在相应的位置上放置一个图钉 我对快速搜索框 QSB 进行了修改以搜索我的应用程序中的数据库 为了获得 QSB 性能 我遵循 API 演示中的搜索词典示例 当我单击搜索建议时 它会重新加载当
  • android:使用多个place_id调用Google API .getPlaceById

    为了减少 API 调用次数 我尝试通过一次传递多个 place id 最多 10 个 来查询地点详细信息 除了文档之外 我没有找到任何有用的信息 https developers google com android reference c
  • 需要在 Ruby 中将数组拆分为指定大小的子数组[重复]

    这个问题在这里已经有答案了 我有一个类似这样的数组 arr 4 5 6 7 8 4 45 11 我想要一个像这样的奇特方法 sub arrays split arr 3 这应该返回以下内容 4 5 6 7 8 4 45 11 注意 这个问题
  • 通过url获取json数据并在python中使用(simplejson)

    我想这一定有一个简单的答案 但我很挣扎 我想获取一个 url 输出 json 并在 python 中的可用字典中获取数据 我被困在最后一步了 gt gt gt import urllib2 gt gt gt import simplejso
  • 将 ES6 类对象序列化为 JSON

    class MyClass constructor this foo 3 var myClass new MyClass 我想序列化myClass对象转为 json 我能想到的一种简单方法是 因为每个成员实际上都是 javascript 对
  • 检查整型变量中是否设置了标志

    我正在制作自己的简单绘图引擎 我试图使用我认为所谓的按位比较来确定变量是否已设置为特定值 但我可能错了 我一直对以下内容以及如何使用它感到有点困惑 int DRAW REPEAT X 70001 I have a feeling I sho
  • 将毫秒格式设置为 simpledateformat

    将毫秒格式化为 SimpleDate 格式时 我遇到一个奇怪的结果 输出是 Start date time 11 06 30 09 45 48 970 End date time 11 06 30 09 45 52 831 Executio
  • 使用xquery从xml中提取数据的最佳方法

    考虑以下 xml
  • ValueError:序数必须 >= 1

    这段代码 从谷歌金融获取直线的 2 个坐标 并将第三个点放置在同一条线上一定距离处 import datetime as dt from datetime import timedelta as td import matplotlib p
  • 从 URL 加载图像并将其显示在 iPhone 应用程序中的更快方法

    我使用以下代码在 ImageView 中显示图像 imgbackBG image UIImage imageWithData NSData dataWithContentsOfURL NSURL URLWithString NSString
  • Highcharts 不会调整选项卡内图表的大小

    我正在使用带有选项卡的 Twitter Bootstrap 我有多个选项卡和每个选项卡内的图表 调整浏览器大小后 不在当前活动选项卡上的图表不会调整大小 事实上 它看起来很有趣 有一个细条 当前活动选项卡工作正常 有谁见过这个问题并且有任何
  • 在 tableView 中删除行时出现核心数据错误

    我有一个 UITableViewController 管理分组的 tableView tableView 是从 fetchedResultsController 填充的 如果我点击Edit导航栏中的按钮 然后选择一行并单击Delete按钮
  • 如何让“不适当的阻塞方法调用”变得适当?

    我目前正在尝试更多地利用 kotlin 协程 但我面临一个问题 当在这些协程中使用 moshi 或 okhttp 时 我收到警告 不适当的阻塞方法调用 解决这些问题的最佳方法是什么 我真的不想变得不合适 该警告是关于阻止当前线程和协程无法正