[英]How to display a ProgressDialog and dismiss it when finished doing a job
我有一種方法可以收集大量數據,這會減慢我的應用程序(所有調用日志)的速度。 我想要實現的是,在調用此方法之前,它會顯示一個ProgressDialog
,這是我已經實現的。 我無法做到的是,當該方法獲取所有數據並將其顯示在屏幕上時,它會關閉它。
對於這個方法,我使用Anko庫來調用異步方法。
這是我的代碼:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = MyActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
var pd = ProgressDialog(this)
pd.show()
pd.setContentView(R.layout.myCustomLoading)
pd.window?.setBackgroundDrawableResource(R.color.transparent)
pd.setCancelable(false)
doAsync { //Anko library
val myList = getData() //This methood return a List<Model>
binding.list.adapter = MyAdapter(this@MyActivity, myList)
}
pd.dismiss()
}
這段代碼的問題是 ProgressDialog 沒有顯示,並且要在 RecyclerView 的屏幕上顯示數據,我必須觸摸屏幕或拖動它,這很少見。
將pd.dismiss()
移動到異步塊的底部。
但不要忘記在 UI 線程activity.runOnUiThread { pd.dismiss() }
上運行它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.