Coroutines(協同程序)是目前官方推薦的非同步執行方式。
倒數計時器
//執行於Main Thread
GlobalScope.launch(Dispatchers.Main){
for(i in 10 downTo 1){
textView.text="倒數 $i 秒"
//執行於Background Thread以延遲一秒
delay(1000)
}
//更新畫面
textView.text = "完成"
}
如果用Thread實作,程式碼會變成.....
Thread{
for(i in 10 downTo 1){
runOnUiThread {
textView.text="倒數 $i 秒"
}
//因為Thread.sleep會拋出例外所以用try-catch處理
try{
Thread.sleep(1000)
} catch (e: InterruptedException){
e.printStackTrace()
}
runOnUiThread {
textView.text = "完成"
}
}.start()