kotlin相关内容

在片段和活动中,什么是运行阻塞协程的替代品?

建议不要使用GlobalScope和runBlock。 我已经对这个主题进行了更改: End flow/coroutines task before go further null issue 然而,它不能像以前使用runBlock那样工作良好。简而言之,图标不变,数据不准时。 我的案例是根据布尔值更改图标。 对流程使用案例 class GetNotificationListI ..
发布时间:2022-05-13 13:06:56 移动开发

初始化IsolatedState会导致IlLegalStateException

我正在尝试在我的项目中使用IsolatedState中的Stately。例如,我有一个视图模型,其中包含一些要显示的数据结构。它是用数据结构实例初始化的,然后我尝试创建一个IsolatedState,以便能够应用用户操作和bg操作来从不同的线程变异相同的实例。 class ViewModel() { constructor(data: SomeData) : this() { ..

将两个Kotlin流合并为一个流,从而从两个原始流中发出最新的值?

如果我们有两个这样定义的流: val someflow = flow { emit("something") } 和另一个定义如下的流: val stateFlow = MutableStateFlow("some value") 是否可以将这两个流合并为仅发出someflow或stateFlow发出的最后一个值的单个流? 的想法是stateFlow可能在将来的某 ..

在带有协程的测试中使用的TestScope高级示例

谁能提供在使用协程进行测试时使用新TestScope和TestScope.launch的高级示例吗? 似乎在新的kotlinx.coroutines.test版本中,他们在库中添加了一些名为TestScope的内容。此外,他们已经弃用了旧的TestCoroutineDispatcher,并被告知使用TestScope.runTests,然而,他们并没有添加太多关于如何使用它的文档。我能找到的所有 ..
发布时间:2022-05-13 11:24:59 移动开发

在Kotlin中,使用线程还是协程更好?

我正在从应用程序发送邮件。由于邮件发送需要花费时间并阻塞主线程,因此我创建了一个新线程,并将邮件发送任务移交给新线程。对于发送邮件的大量并发请求,我必须创建大量线程。但创建线程似乎很慢。 我的问题是,如果我使用Kotlin的协程,它的性能是否比线程更好? 某些解释或提示非常可取。 推荐答案 我的问题是,如果我使用Kotlin的协程,它的性能是否比线程更好? 协程不是线程的 ..
发布时间:2022-05-13 11:05:34 其他开发

Kotlin协程中的可见性

我决定一头扎进Kotlin协程。我有一些关于能见度的问题。我理解,在没有ContinuationInterceptor的情况下,相同协程的不同部分可能由不同的线程执行。 如何保证挂起后的新线程具有正确的协程内部状态可见性? 例如: suspend fun doPost(customRatings : Map) : Int {...} f ..
发布时间:2022-05-13 10:55:52 其他开发

无法访问';androidx.lifecycle.LifecycleCoroutineScope';的超类型kotlinx.coroutines.CoroutineScope

尝试使用房间API,但必须处理异步任务,您知道为什么。 我选择了Kotlin协程和androidx。生命周期。尝试编写一些代码,但在IDE中显示2个错误 无法访问‘kotlinx.coroutines.CoroutineScope’,它是‘androidx.lifecycle.LifecycleCoroutineScope’的超类型。检查模块类路径中是否存在丢失或冲突的依赖项 无法访问类‘kot ..

如何将协程直接分派到JVM上的主线程?

我正在为JVM设置一个基于Kotlin协程的网络框架。客户端和服务器类实现CoroutineScope,而coroutinecontext的重写是Dispatcher s.IO,因为我非常确定这是用于这种情况的正确调度程序。但是,我希望在主线程上处理读数据包,或者至少提供该选项。在没有阅读文档的情况下,我使用了Dispatcher s.Main,我现在意识到它是用于Android UI线程的。有没 ..

如何等待所有协程结束?

我正在启动一个协程,我希望它在继续执行主线程之前完成。 我的简化代码如下所示: fun hello() { for (i in 0..100) { println("hello") } } fun main(args: Array) { val job = GlobalScope.launch { hello() } //lau ..
发布时间:2022-05-13 10:30:56 其他开发