【问题标题】:Using replace() in Fragment Transaction consume more Memory than add()?在 Fragment Transaction 中使用 replace() 比 add() 消耗更多内存?
【发布时间】:2012-11-10 15:37:36
【问题描述】:

我对在 Android 中使用 Fragments 非常陌生。我已经使用 Fragments 开发了一个应用程序,但它导致 OutOfMemoryError。我使用 replace() 来更改片段。我的 Fragments 包含昂贵的 UI 组件,并认为使用 replace() 会导致这样的错误,例如当我回到 Fragments 时,它会一次又一次地创建 UI。使用 add() 方法会减少内存消耗吗?我在 android 文档中得出了这样的结论,它声明 add 方法将添加片段容器,而 replace 将删除早期片段的所有 ui 部分。

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    Add/replace 方法从头开始销毁和创建片段,从而启动整个片段的生命周期。在您的情况下,我建议您使用 attach/detach 方法,这会导致不保留额外的内存。

    FragmentTransaction阅读更多关于这些方法的信息

    【讨论】:

    • 使用 add() 将片段添加到容器中,如果我们使用显示/隐藏不会导致整个片段的生命周期。这对我的情况有好处吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多