我什么时候可以在我的Dialogs中调用dimiss()或hide()?

时间:2011-11-09 11:33:03

标签: android dismiss android-dialog

我得到了这个对话框snipet:

String message="This will be my message";

    AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
    alt_bld.setMessage(message)
    .setCancelable(false)
    .setPositiveButton("OK", new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int id) 
        {


             ProgressDialog dialog1 = ProgressDialog.show(CombatActivity.this, "Loading", 
                     "Pushing OK...", true);


        Intent i = new Intent();
        i.setClass(MyFirstActivity.this, MySecondActivity.class);
        startActivity(i);
        finish();



        }
    });

    AlertDialog alert = alt_bld.create();
    // Title for AlertDialog
    alert.setTitle("Nyertél.");
    // Icon for AlertDialog
    alert.setIcon(R.drawable.icon);
    alert.show();

我的问题是: 我应该在其中任何一个中调用.hide()或.dismiss()吗? 消息文本将被动态读取,我不希望每个显示的对话框都有一个单独的实例。我只想要一个更新的消息。

那么我应该如何以及何时致电删除或解雇?

2 个答案:

答案 0 :(得分:2)

是的,您必须在致电dismiss()之前致电finish(),否则对话框将保留在后台,当您尝试开始其他活动时可能会出现问题。

答案 1 :(得分:1)

在Android hide()中,AlertDialog表示只是让它从屏幕上消失。但是,它仍然保留并附加Context。因此,您需要调用dismiss()cancel()方法从Context分离。否则,它将提供“泄漏窗口错误”