[英]How can I update Android UI in a coroutine?
當我將更新 UI 的代碼放入協程時,我的代碼會崩潰。 例如:
GlobalScope.launch {
//code that makes text box blue
delay(1000L)
}
會崩潰。 我還需要多次循環延遲,所以我不能使用后期處理程序。 我怎樣才能解決這個問題?
如果您正在處理活動,您可以通過這種方式更新您的 UI
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
launch(context = UI) {
val result = async { loadString() }.await()
Log.d("TAG",
"Post execution thread:"+Thread.currentThread().name)
textView.text = result
}
}
private suspend fun loadString() : String {
Log.d("TAG", "Execution thread: "+Thread.currentThread().name)
delay(1000L)
return "Some loaded string..."
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.