在Fragment Transaction中使用replace()比使用add()消耗更多的内存?

时间:2012-11-10 15:37:36

标签: android android-fragments

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

1 个答案:

答案 0 :(得分:2)

添加/替换方法从一开始就销毁并创建片段,从而导致整个片段的生命周期开始。在您的情况下,我建议您使用 attach / detach 方法,这些方法不会保留额外的内存。

FragmentTransaction

中详细了解这些方法