缓慢的 AlertDialog.show()。预加载对话框?

Ami*_*elS 5 android android-alertdialog

我需要显示一个 AlertDialog,其中包含一个带有大约十几个项目(图像和文本)的 ArrayAdapter。当应用程序启动时,会出现一个加载屏幕,在此期间会设置多项内容。设置任务之一是创建和构建 AlertDialog。

然后,当必须显示 Dialog 时,只需要调用dialog.show(). 但是,在第一次显示对话框时,在单击打开和显示对话框之前仍然有很明显的延迟。第一次显示对话框后,此延迟消失。

既然已经创建了对话框,难道不应该没有延迟吗?还剩下什么让对话框完全加载(因此第一次点击没有延迟)?

小智 0

没有显示代码,所以我只能猜测。第一次显示对话框时,dialog.show() 下面是否有任何工作需要一段时间(可以短至 1 或 2 秒)?如果是这样,它可能会阻塞 ui 线程,并且在调用 show() 后对话框可能不会立即出现。如果是这种情况,只需将作业放在另一个线程上即可。例如,

dialog.show()
val handler = Handler()
thread(start=true) {
    DO THE JOB
    handler.post {
        dialog.dismiss()
    }
}
Run Code Online (Sandbox Code Playgroud)