Android:对话:我应该隐藏还是暗淡

Jas*_*ers 26 android dialog

我正在使用Dialog在我的应用程序中创建一些快速视图(如登录输入名称等)

而我正在徘徊更好的东西:隐藏或解雇.

我知道他们两个都做了但是我一直在徘徊,如果最好只是隐藏一个Dialog并在我需要时再次显示它,或者将它解散并重新创建它.

我的对话框很小,在我的代码中是非常静态的,因此我没有大量的实例.

所以有人可以给我使用hide而不是dismiss的优点和缺点.

贾森

Jos*_*ter 53

使用hide()可能会导致Leaked Window错误.

如果您选择使用hide()并退出应用程序finish(),则会导致出现泄漏窗口的错误消息(此处显示).

因此,要么dismiss()在调用之前正确对话,要么finish()只使用dismiss()而不是hide().

  • 使用hide()发生在我身上的泄漏窗口错误信息+1 (11认同)
  • 然后`hide()`的用途是什么? (2认同)
  • @PratikButani我不亲自使用它,但我想如果对话框的创建成本很高而且你要重复多次,那么使用`hide()`而不是`dismiss()`会更高效. (2认同)

Rof*_*ion 25

这取决于您需要多少时间,以及创建它的时间是否昂贵.如果创建它不是太昂贵,我个人更愿意解雇它,以获得"更清洁的环境".但如果你没有使用数百个对话框,我认为这不重要.


Mas*_*shi 8

我知道这是一个非常古老的帖子,但我发现上述答案都不够好,所以用最简单的方式解释:

  • hide()将只更改对话框的可见性状态,但对象仍然存在,可以使用show()方法再次显示.
  • dismiss()隐藏并摧毁对话框.要再次显示对话框,首先需要重新创建.

然后,如果你需要多次显示和隐藏对话框hide().最终dismiss()还是onDestroy()要避免窗口泄漏错误.

希望它对特征引用有用.