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

我正在玩对话在我的应用程序中创build一些快速浏览(如logininput名称等)

而我正在游荡什么更好:隐藏或解雇。

我知道他们俩都做了什么,但是如果只是隐藏一个对话框并且在我需要的时候再次显示它,或者将其解散并重新创build,那么我会一直stream浪。

我的对话框很小,在我的代码中是非常静态的,所以我不会拥有大量的实例。

那么有人可以给我利用隐藏的利弊。

贾森

  • 如何删除对话框边距?
  • android:显示进度对话框
  • 如何隐藏对话框显示的键盘?
  • 在对话框中忽略HTML格式的标签
  • Android IllegalArgumentException为dismissDialog
  • 防止在Android中的屏幕旋转对话框解散
  • 如何删除对话框中的标题?
  • 点击button后,sendUserActionEvent()mView == null
  • 这取决于你需要多less时间,以及创build它是否昂贵。 如果制作起来不算太贵的话,我个人更喜欢解雇,build立一个“更清洁的环境”。 但是如果你不使用数百个对话框,我不认为这真的很重要。

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

    如果您select使用hide()并使用finish()退出应用程序,则会导致有关窗口泄露的错误消息(请参阅此处 )。

    因此,在调用finish()之前,或者使用dismiss()而不是hide() ,可以正确地dismiss()你的对话框。

    我知道这是一个很老的post,但是我没有find足够好的答案,所以用最简单的方式解释:

    • hide()只会改变对话框的可见性状态,但是对象将仍然存在,并且可以使用show()方法再次show()
    • dismiss()隐藏并破坏对话框。 要再次显示对话框,需要先重新创build。

    那么如果你需要显示和隐藏对话多次hide()它。 最后dismiss()onDestroy()以避免窗口泄漏错误。

    希望对特性参考有用。

    我认为“静态”是指内容不是dynamic的,而不是你的代码中有静态对象。 在这种情况下,最好closures对话框,让虚拟机重新为其分配内存。 创build一个对话所需要的资源是微不足道的,但是如果不太经常使用,则保留内存是一个饿死内存系统的好方法。

    考虑一下你的应用程序可能是六个应用程序之一运行。 如果他们都把隐藏的“廉价”物品隐藏起来,而不是很快就解雇他们,那么虚拟机就会迫使他们closures回收存储器。

    同时我们正在谈论一个不完全是大对象的对话框。 我提供的标准行为就是解雇它,除非你可以创build一个令人信服的说法,为什么隐藏它以节省资源重新创build(例如,如果你经常显示这个对话框)更便宜。