Когда я буду вызывать dimiss () или hide () в диалогах? - PullRequest
1 голос
/ 09 ноября 2011

Я получил этот фрагмент:

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 ]

2 голосов
/ 09 ноября 2011

Да, вам нужно позвонить dismiss(), прежде чем позвонить finish(), в противном случае диалоговое окно останется в фоновом режиме и может вызвать проблемы при попытке запустить другие действия.

1 голос
/ 17 августа 2017

В Android hide() a AlertDialog означает просто заставить его исчезнуть с экрана. Но, тем не менее, он сохраняется и прикрепляется с Context. Итак, вам нужно вызвать метод dismiss() или cancel(), чтобы отсоединиться от Context. В противном случае он выдаст «Leaked Window Error» .

...