如何在进一步处理之前关闭对话框?

时间:2017-10-28 14:36:16

标签: java android alertdialog

我有for /?接受输入以进行进一步处理。因为处理可能需要一段时间,所以我想关闭alertDialog并在执行处理方法期间显示图像。问题是在实际关闭对话框之前调用了alertDialog。因此,在该加载时间内,程序基本上会挂起,显示警告对话框,直到process()完成,之后图像显示为瞬间,从而无法实现其目的。

我尝试在process()方法中显示图片,并尝试在同步方法中执行process(),但结果保持不变。

dialog.dismiss()

2 个答案:

答案 0 :(得分:1)

您可以使用

 alertDialogBuilder.setOnDismissListener(new 
    DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialogInterface) {
                //do work on dismiss of dialog
            }
    });

因此,您可以在此部分中显示图像并开始您的过程。向进程结束添加回调侦听器,并在进程结束时使用回调使图像不可见。

答案 1 :(得分:0)

应该像

一样简单
 final String input = et.getText().toString();
 dialog.dismiss();

 // run in background
 AsyncTask.execute(new Runnable() {
   @Override
   public void run() {
     process(input);
   }
});