有没有办法确定是否可以调用dialog.dismiss()而不使用空的try-catch块?

时间:2011-11-09 12:31:51

标签: java android api scala architecture

我得到了众所周知的java.lang.IllegalArgumentException: View not attached to window manager。当前known solution是使用空的try-catch块忽略错误。但它是否有一个更程序员友好的解决方案?例如。

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

当然,如果Android SDK有一个没有失败的功能会更好(因为如果无法避免它,API为什么会失败?):

dialog.tryDismiss();

或者,空的try-catch块在架构上是否合理?或者它只是一个糟糕或不完整的API的解决方法?

2 个答案:

答案 0 :(得分:2)

我总是使用:

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

答案 1 :(得分:0)

你可以使用:

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

在活动消失/关闭之前更好地解除对话 ...这也意味着在onPause()和onDestroy()事件中......