Android对话框自行消失

问题描述

| 我正在使用以下代码创建自己的对话框:
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\");
}