Właśnie rozpoczął naukę współprogram Kotlin i próbował symulować pewne dawno API połączeń z pokazując wynik na UI:Jak korzystać Kotlin współprogram czekają() na głównym wątku
class MainActivity : AppCompatActivity() {
fun log(msg: String) = println("[${Thread.currentThread().name}] $msg")
override
fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.setContentView(R.layout.activity_main)
val resultTV = findViewById(R.id.text) as TextView
val a = async(CommonPool) {
delay(1_000L)
6
}
val b = async(CommonPool) {
delay(1_000L)
7
}
launch(< NEED UI thread here >) {
val aVal = a.await()
val bVal = b.await()
resultTV.setText((aVal * bVal).toString())
}
}
}
ja nie rozumiem, w jaki sposób mogę ewentualnie użyć metody launch
z kontekstem .
Niestety, nie udało mi się znaleźć niczego na temat dostarczania wyników dla niektórych wątków pod numerem the official tutorial for coroutines.
Niestety, gdzie znalazłeś 'metody launch'? –
Może ta biblioteka pomoże ci https://github.com/metalabdesign/AsyncAwait –
Chciałbym przez bibliotekę, ale martwiłem się tylko, że można to zrobić używając tylko standardowych kotlinx.coroutines. –