Есть ли способ определить, можно ли вызвать dialog.dismiss () без пустого блока try-catch? - PullRequest
5 голосов
/ 09 ноября 2011

Я получаю известное java.lang.IllegalArgumentException: View not attached to window manager. известное в настоящее время решение - игнорировать ошибку, используя пустой блок try-catch.Но есть ли более дружественное к программисту решение?Например,

if (dialog.isAttached())
  dialog.dismiss();

Конечно, было бы лучше, если бы в Android SDK была бы исправная функция (потому что почему API не должен работать, если его невозможно избежать ??):

dialog.tryDismiss();

Или пустой блок try-catch архитектурно оправдан?Или это просто обходной путь для плохого или неполного API?

Ответы [ 2 ]

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

Я всегда использую:

if(dialog != null && dialog.isShowing())
  dialog.dismiss();
0 голосов
/ 09 ноября 2011

вы можете использовать:

if (dialog != null && dialog.isShowing())dialog.dismiss();

лучше вас закрыть диалоговое окно до того, как действие исчезнет / закроется ... это означает, что в событиях onPause () и onDestroy () тоже ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...