Android 活动对话框一旦退出就会冻结屏幕,直到按下后退为止

问题描述 投票:0回答:2

我想了解一些有关 Android 开发的知识,因此我创建了一个 Android 活动来显示带有两个按钮的对话框。就这么简单:

class DialogWindow extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setTitle("Dialog Window");
    alertDialog.setMessage("Do you want to save");
    // Setting Positive "Yes" Button
    alertDialog.setPositiveButton("Save"),
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    doThis();
                    dialog.dismiss();
                }
            });
    // Setting Negative "NO" Button
    alertDialog.setNegativeButton("Cancel"),
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    doThat();
                    dialog.dismiss();
                }
            });

    alertDialog.show();
}

我正在测试它,因此方法

doThis()
doThat()
到目前为止仅显示其相应的
Toast
消息。

问题

无论我按什么

Button
Dialog
都会关闭,并显示之前的
Activity
屏幕。但我无法再与它交互,直到按下后退按钮:然后我可以再次交互,而不会出现我的活动问题。

您能告诉我为什么会发生这种情况吗?当然,在我的计划中,我希望对话框窗口关闭,使应用程序立即响应。为什么上面的代码我必须按回键? 谢谢

android android-alertdialog
2个回答
0
投票

您正在创建一个不可见的 Activity(因为您没有调用 setContentView)来生成对话框。 一旦对话框关闭,活动仍然存在。 因此,为什么您需要在恢复之前的活动之前退出 DialogWindow 活动。


0
投票

调用alertDialog.cancel()而不是alertDialog.dismiss()为我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.