我刚开始学习 Kotlin 协程,并试图通过在 UI 上显示结果来模拟一些长时间的 API 调用:
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())
}
}
}
我不明白我怎么可能在上下文中使用launch
方法。main
不幸的是,我在coroutines 的官方教程中找不到任何关于为某些特定线程提供结果的信息。