は、私のようないくつかのコードを持っている:AnkoのdoAsync、uiThreadをkotlin 1.1.0と置き換える方法kotlinx-coroutines-core libの機能は何ですか?
私はkotlinx-コルーチンコアのlibから新しい何かをdoAsyncとuiThreadを置き換えることができますどのようにdoAsync{
...
uiThread{
...
}
}
?コルーチンライブラリバージョン0.20のための
は、私のようないくつかのコードを持っている:AnkoのdoAsync、uiThreadをkotlin 1.1.0と置き換える方法kotlinx-coroutines-core libの機能は何ですか?
私はkotlinx-コルーチンコアのlibから新しい何かをdoAsyncとuiThreadを置き換えることができますどのようにdoAsync{
...
uiThread{
...
}
}
?コルーチンライブラリバージョン0.20のための
更新:
run
が廃止され、代わりにwithContext
を使用する必要があります。 0.20:
async(CommonPool) {
...
withContext(UI) {
...
}
}
の詳細な作業例このソリューションの進化に興味のある人は、私はそれを残しておきます。
コルーチンライブラリがバージョン0.13にアップデートされましたので、更新:
あなたは今のAndroid固有のUI
コルーチンのコンテキストをインポートし、このようにそれを使用するために、あなたのGradleにcompile 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.13'
への依存関係を追加することができます。
以下の元の回答の時点で必要だったように、独自のコルーチンのディスパッチャーをもう定義する必要はありません。
オリジナルの答え:
それは次のように動作するはずです:
async(CommonPool) {
...
run(MainThread) {
...
}
}
問題は今、メインに戻りますMainThread
のない標準の実装がないことですAndroidのスレッド(これは今後リリースされる予定です)ですので、あなた自身で行う必要があります:
val MainThread = object : Executor {
private val mHandler = Handler(Looper.getMainLooper())
override fun execute(command: Runnable) {
mHandler.post(command)
}
}.toCoroutineDispatcher()
ジャストノート: 'ラン(UI){...}' が廃止され、 'withContext(UI){...}' を代わりに使用する必要があります。 –
@PepaNovotný良いキャッチ!これがankoのどのバージョンで起こったのですか? – Robin
https://github.com/Kotlin/kotlinx.coroutines/issues/134 –