Android对话框自动消失

Android对话框自动消失,android,dialog,Android,Dialog,我正在使用以下代码创建自己的对话框: public void ShowMessageDialog(String str){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(str); builder.setCancelable(false); builder.setNeutralButton("Ok", new DialogInterface.OnCli

我正在使用以下代码创建自己的对话框:

public void ShowMessageDialog(String str){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(str);
    builder.setCancelable(false);
    builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {          
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}
它工作正常,但在该函数中使用时,对话框似乎自行消失:

public void test(String str){
    ShowMessageDialog("About to start new activity");
    Intent intent = new Intent(this,PageViewer.class);
    startActivity(intent);
}
新的活动似乎已经创建,并且明显地摆脱了对话框。但是为什么呢?活动不应该在打开新活动之前停止吗


谢谢

即将触发的意图不会等待对话框被取消。所以,在显示对话框之后,新的活动就开始了。你可以像这样完成你想要的:

public void ShowMessageDialog(String str){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(str);
    builder.setCancelable(false);
    builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {          
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            Intent intent = new Intent(this,PageViewer.class);
            startActivity(intent);
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}

public void test(String str){
    ShowMessageDialog("About to start new activity");
}

此外,您可能应该将意图构造函数中的“this”替换为对活动或应用程序上下文的引用,因为这种方式“this”用于DialogInterface实例。我不确定,但我想你已经知道了。非常感谢你的回答@伊戈菲利波夫:我不明白。你能解释一下“这个”吗