作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在我的 android Application
上引用协程范围.我做了以下
class TodoApplication : Application() {
private var job = Job()
private val applicationScope = CoroutineScope(Dispatchers.Main + job)
val tasksRepository: TasksRepository
get() = ServiceLocator.provideTasksRepository(this, applicationScope)
}
job.cancel()
最佳答案
没有,全局范围 将不是 适用于Application实例。
正如本文中提到的 here :
不应该使用 GlobalScope 的原因有很多:
Dispatchers
可能很诱人如果您使用 GlobalScope
马上。这是一个不好的做法!applicationScope
所做的那样,内置在范围中.相反,您必须传递一个常见的 CoroutineContext
致GlobalScope
开始的所有协程.val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
但更好的是 ,正如@Raman 在评论中指出的那样,使用您已经可用的等效项:
kotlinx.coroutines.MainScope()
我们不需要取消这个范围,因为我们希望它保持 Activity 状态,只要
关于android - 应用程序类android上的协程范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61255807/
在我的设置中,我试图有一个界面 Table继承自 Map (因为它主要用作 map 的包装器)。两个类继承自 Table - 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
Rust Nomicon 有 an entire section on variance除了关于 Box 的这一小节,我或多或少地理解了这一点和 Vec在 T 上(共同)变体. Box and Vec
我是一名优秀的程序员,十分优秀!