cost 67 ms
Kotlin 使用 kotlin-test 测试协程 - Kotlin Testing Coroutines with kotlin-test

我有以下内容,我正在尝试测试 class 启动协程并且该协程在线程中正确执行某些操作。 但是我认为对上下文/调度程序和 scope 的工作方式没有正确的理解,所以这没有按预期工作。 上面的测试实际上并没有运行协程完成,我不确定我错过了什么,所以任何帮助将不胜感激。 ...

CoroutineScope 与 SupervisorJob 与 supervisorScope - CoroutineScope with SupervisorJob vs supervisorScope

最近我一直在详细学习协程,据我所知,如果协程的一个子进程由于某种原因被取消, SupervisorJob()给了我们不取消所有子进程的机会。 据说以 coroutineScope 启动的coroutineScope如果失败会取消所有子进程,但以supervisorScope启动的协程只会取消失败的 ...

使用 coroutineScope() 和启动子协程并在其上调用 join 之间有什么区别? - What is the difference between using coroutineScope() and launching a child coroutine and calling join on it?

我试图理解 Kotlin 中的coroutineScope() suspend function,我很难理解这个 function 的确切目的。 根据 kotlinlang 文档, 这个 function 是为并行分解工作而设计的。 当这个 scope 中的任何子协程失败时,这个 scope 失败 ...

Kotlin:调用 CoroutineScope.launch 与在协程内启动之间的区别 - Kotlin: Difference between calling CoroutineScope.launch vs launch inside a coroutine

我试图理解 Kotlin 中的结构化并发,但我无法理解这段代码。 代码打印 而如果我用launch替换内部scope.launch调用,就像这样 它打印 这表明第一个示例不遵循结构化并发,因为父作业在子作业之前完成。 我的困惑是,为什么会这样? 在这种情况下,我觉得scope.launch可能等同于 ...

是否可以使用 Dagger 将当前 Activity 的 lifecycleScope 注入到非 Activity class 中? - Can the lifecycleScope for the current Activity be injected into a non-Activity class using Dagger?

这是一个极其简化的示例: 我想知道是否有更好的方法来解决这个问题。 同样,这是我所拥有的一个简化示例。 我意识到一个明显的替代方法是将 scope 从MyActivity给Foo - 我们只能说这在这种情况下不切实际。 有没有办法使用 Dagger 从当前Activity注入lifecycleSc ...

如何在 Android 中读取 Flow 的结果 Compose @Composable function 用于非 GUI 消费(例如,用于写入存储库) - How to read the result of Flow in Android Compose @Composable function for non-GUI consumption (e.g. for writing in repository)

我在我的 Android Compose 应用程序中引入了 DataStore,用于存储用户首选项。 虽然我对将 DataStore 实例保留为 Context 实例的属性不满意——因为只能从 @Composable 访问 Context(而不是在例如存储库中)——但我仍然坚持下去。 让我们假设( ...

Android。 如何在不阻塞 UI 的情况下更正启动协程? - Android. How to correct launch coroutine without blocking UI?

我是协程的新手。 我正在尝试将它添加到我的项目中。 我也在使用 MVVM。 在文档中,我阅读viewModelScope.launch { } : 启动一个新的协程而不阻塞当前线程但同时,我也经常看到这样的代码结构: 如果文档说viewModelScope.launch { }会在不阻塞当前线程的 ...

在 AppWidgetProvider class 中使用哪个协程 scope? - Which Coroutine scope to use in AppWidgetProvider class?

我目前正在创建一个小部件,并且正在使用配置活动配置小部件并在 AppWidgetProvider 的 onUpdate() 上初始化小部件。 之后,CoroutineWorker 将不时更新小部件。 我已将 updatePeriodMillis 设置为 0。所以我的代码就是 所以我的问题是我可以用 ...

RoomDb 更新/插入协程调用是否可以取消,或者无论取消是否都会完成? - Are RoomDb update/insert coroutine calls cancellable or will they complete regardless of cancellation?

roomDb 通话可以取消吗? 即挂起函数必须使用yield()或检查isActive()才能对取消做出反应。 我正在尝试确定依赖一个小的(或相当大的)roomDb 事务更新到 go 是否安全,即使 viewModelScope 在事务完成之前被取消也是如此。 ...

从控制器启动 Kotlin 任务的范围是什么? - What scope to use for launching a task in Kotlin from a controller?

我的 Kotlin 应用程序正在使用 Spring 公开一个应该在后台执行长任务的 API。 我们需要返回 IntelliJ 抱怨说使用 GlobalScope 是一种反模式。 但是,我不能只将挂起添加到控制器功能,否则它将不起作用。 我不能使用runBlocking或者该方法需要等到完成产生 ...

如何按顺序运行 Kotlin 协程? - How to run Kotlin coroutines sequentially?

我有一个CoroutineScope和log()函数的实例,如下所示: 我使用这个测试代码来启动协程: log()函数可以从任何地方、任何Thread调用,但不能从协程调用。 经过几次测试后,我看不到如下的连续结果: 打印日志的顺序可以不同。 如果我理解正确,协程的执行并不能保证是顺 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM