Slow AlertDialog.show()。预加载对话框?

时间:2016-09-28 22:51:03

标签: android android-alertdialog

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

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

因为对话框已经创建,所以不应该没有延迟吗?还有什么可以让对话框完全加载(因此第一次点击没有延迟)?

1 个答案:

答案 0 :(得分:0)

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

dialog.show()
val handler = Handler()
thread(start=true) {
    DO THE JOB
    handler.post {
        dialog.dismiss()
    }
}