我需要显示一个AlertDialog,其中包含一个ArrayAdapter,有大约十几个项目(图片和文本)。当应用程序启动时,会有一个加载屏幕,在这个屏幕中会有多个设置任务。其中一个设置任务是创建和构建AlertDialog。
然后,当Dialog必须被显示时,只需要调用 dialog.show()
. 然而,在第一次显示对话框时,在点击打开和显示对话框之前仍然有一个非常明显的延迟。在第一次显示对话框后,这种延迟就消失了。
既然已经创建了对话框,难道不应该有延迟吗?还需要什么才能让对话框完全加载(因此第一次点击时没有延迟)?
没有显示代码,所以我只能猜测一下。dialog.show()下面是否有任何工作在第一次显示对话框时需要一段时间(可以短至1或2秒)?如果是这样的话,可能会阻塞ui线程,在调用show()后,对话框可能不会马上出现。如果是这样的话,就把这个工作放到另一个线程上。比如说
dialog.show()
val handler = Handler()
thread(start=true) {
DO THE JOB
handler.post {
dialog.dismiss()
}
}