私はalertDialog
を持っていますので、それ以上の処理のために入力が必要です。処理にはしばらく時間がかかりますので、処理方法を実行中に画像を表示したい場合は、alertDialog
を閉じて画像を表示します。問題は、ダイアログが実際に終了する前にprocess()
が呼び出されていることです。そのローディング時間中、プログラムは基本的に 'ハング'し、process()
が終了するまで警告ダイアログを表示し、その後、そのイメージが分割されて表示され、その目的を破ります。後で処理する前にダイアログボックスを消す方法は?
process()
メソッドで画像を表示しようとしましたが、同期メソッドでdialog.dismiss()
を実行しようとしましたが、結果は変わりません。
alertDialogBuilder.setCancelable(true).setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
final String input = et.getText().toString();
dialog.dismiss(); //finish this first
process(input); //then do this
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
のように単純でなければなりませんただ、 '異なるスレッド上process'を開始? – Tomer
私はコーディングが新しく、このことを間違えていると謝ります。私はスレッドの匿名サブクラスの中にプロセス(入力)を入れてみましたが、少し速く完了する以外は同じ結果が得られます。 – GomuGomu