例如:
Observable.fromCallable<Int> {
backgroundTask() // returns an integer
}
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe ({ number -> /* success */ }, { error -> /* fail */ })
通常在后台(另一个线程)上执行任务,并将其结果返回到主线程中。
此代码段将如何使用 Kotlin协程?
答案 0 :(得分:3)
您可以使用withContext()
切换线程。例如,
launch(Dispatchers.MAIN) {
//main thread here
val result = withContext(Dispatchers.IO) {
//IO thread here
backgroundTask()
}
//main thread here again
//doing something with result
}