我有for /?
接受输入以进行进一步处理。因为处理可能需要一段时间,所以我想关闭alertDialog
并在执行处理方法期间显示图像。问题是在实际关闭对话框之前调用了alertDialog
。因此,在该加载时间内,程序基本上会挂起,显示警告对话框,直到process()
完成,之后图像显示为瞬间,从而无法实现其目的。
我尝试在process()
方法中显示图片,并尝试在同步方法中执行process()
,但结果保持不变。
dialog.dismiss()
答案 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);
}
});