有一个Activity
,一个侧面菜单和多个Fragment
。当我在侧边菜单中选择菜单时,会删除添加到活动中的特定Fragment
和之前的活动。在这个应用程序中,我是否必须缓存Fragment
对象?或者每次选择菜单时重新创建新的Fragment
?哪个更好?
答案 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
和删除缓存的第二片段。现在,如果你这样做,那么你将节省时间再次渲染到屏幕上。但永远记住它可能会让你失去记忆。
如果您想专门为具有较低堆大小的设备提供内存明智的应用程序,请在每次选择菜单时重新创建该片段。