Эквивалент наблюдения и подписки в котлинских сопрограммах - PullRequest
0 голосов
/ 25 февраля 2019

Например:

Observable.fromCallable<Int> {
   backgroundTask() // returns an integer
   }
   .observeOn(AndroidSchedulers.mainThread())
   .subscribeOn(Schedulers.io())
   .subscribe ({ number -> /* success */ }, { error -> /* fail */ })

Обычно выполнение задачи в фоновом режиме (другой поток) и получение результата обратно в основной поток.

Как этот фрагмент кода будет использовать сопрограммы Kotlin ?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете переключить нить, используя withContext().Например,

launch(Dispatchers.MAIN) {
    //main thread here
    val result = withContext(Dispatchers.IO) {
        //IO thread here
        backgroundTask()
    }
    //main thread here again
    //doing something with result
}
...