作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个帮助类,用于在数据库 Realm 做一些工作。如您所知,我们在使用 Realm 时有一些限制,例如:
CoroutineScope
并提供
CoroutineContext
我用了这段代码
Executors.newSingleThreadExecutor().asCoroutineDispatcher()
但我的问题是这个
CoroutineScope
上的所有工作正在非循环线程上运行,所以
ExecutorCoroutineDispatcher
它在单个弯针线程上运行。
Dispatchers.Main
因为它应该在我的数据库上做作业
最佳答案
尽管@Pawel的评论已经解决了OP的问题,但对于可能需要某个代码 fragment 的人来说:
// prepare a HandlerThread and start it
val handlerThread = HandlerThread("MyThread")
handlerThread.start()
// obtain Handler from the HandlerThread's looper
val handler = Handler(handlerThread.looper)
// Now you can get CoroutineDispatcher from the Handler
val myDispatcher = handler.asCoroutineDispatcher()
或者很快使用 Scope 函数:
val myDispatcher = HandlerThread("MyThread")
.apply { start() }
.looper.let { Handler(it) }
.asCoroutineDispatcher()
关于android - Looper 线程上的 CoroutineDispatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65183494/
我是一名优秀的程序员,十分优秀!