簡體   English   中英

完成工作后如何顯示 ProgressDialog 並關閉它

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM