3

進行状況ダイアログがあり、それを閉じてからアプリを終了する必要があります。私がそれをしている方法はこのようなものです:

new AlertDialog.Builder(MainActivity.this)
                            .setMessage("There has been a problem.")
                            .setPositiveButton("OK",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(
                                                DialogInterface dialog,
                                                int which) {
                                            dialog.dismiss();
                                            finish();
                                        }
                                    }).show();

それにもかかわらず、私は常に有名なエラーを受け取ります:

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@48189240 is not valid; is your activity running?
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.view.ViewRoot.setView(ViewRoot.java:505)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:200)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:114)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.app.Dialog.show(Dialog.java:241)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.app.ProgressDialog.show(ProgressDialog.java:107)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.app.ProgressDialog.show(ProgressDialog.java:90)
05-23 16:56:44.573: ERROR/AndroidRuntime(2494):     at android.app.ProgressDialog.show(ProgressDialog.java:85)

どうすれば問題なくそれを却下できますか?私はそれを正しくやっていますか?

よろしくお願いします。

編集:私はそれを完璧に表示することができ、それを却下した場合でも、ユーザーには何も問題はありませんが、私のLogCatではその厄介なエラーを見ることができます。

4

1 に答える 1

1

動作するはずですが、これはテストしていません。ただし、別の方法として、finish()ダイアログonClickとアクティビティのonStop呼び出しを呼び出すこともできますdialog.dismiss()

onStopでdismissを呼び出すと、ウィンドウリーク警告メッセージが回避されます。

于 2013-03-27T09:04:31.927 に答える