缓存Fragment是一个好习惯吗?

时间:2014-09-02 04:04:06

标签: android

有一个Activity,一个侧面菜单和多个Fragment。当我在侧边菜单中选择菜单时,会删除添加到活动中的特定Fragment和之前的活动。在这个应用程序中,我是否必须缓存Fragment对象?或者每次选择菜单时重新创建新的Fragment?哪个更好?

1 个答案:

答案 0 :(得分:5)

 do I have to cache Fragment object?

请记住,如果你在其中缓存了一个包含多个视图的Fragment,它可能会花费你的内存,导致你的堆满了OutOfMemoryException并且你正在为另一个片段分配内存。

or just recreate new Fragment every time I selected menu? which one is better?

如果你的片段上没有很多View,那么我只会从每一侧缓存1或2个片段。

假设您有5个片段(1 - 2 - 3 - 4 - 5)并且您目前位于3rd fragment我只会缓存第2个第四片段不是1st and 5th fragment但是如果我将片段更改为第四那么我将缓存3rd and 5th fragment删除缓存的第二片段。现在,如果你这样做,那么你将节省时间再次渲染到屏幕上。但永远记住它可能会让你失去记忆。

如果您想专门为具有较低堆大小的设备提供内存明智的应用程序,请在每次选择菜单时重新创建该片段。