【发布时间】:2014-09-02 04:04:06
【问题描述】:
有一个Activity、一个侧边菜单和许多Fragments。当我在侧边菜单中选择菜单时,一个特定的Fragment 添加到活动中,而前一个被删除。在这个应用程序中,我是否必须缓存 Fragment 对象?还是每次选择菜单时都重新创建新的Fragment?哪个更好?
【问题讨论】:
标签: android
有一个Activity、一个侧边菜单和许多Fragments。当我在侧边菜单中选择菜单时,一个特定的Fragment 添加到活动中,而前一个被删除。在这个应用程序中,我是否必须缓存 Fragment 对象?还是每次选择菜单时都重新创建新的Fragment?哪个更好?
【问题讨论】:
标签: android
do I have to cache Fragment object?
请记住,如果您缓存了其中包含多个视图的 Fragment,则可能会消耗您的内存,这可能导致 OutOfMemoryException 您的堆已满并且您正在将内存分配给另一个 Fragment。
or just recreate new Fragment every time I selected menu? which one is better?
如果您的片段上没有很多视图,那么我将只缓存每侧的 1 或 2 个片段。
假设您有 5 个片段(1 - 2 - 3 - 4 - 5)并且您目前在 3rd fragment 我只会缓存 2nd 和4th 片段 但 不是 1st and 5th fragment,但是 如果我将片段更改为 4th 那么我会缓存 @987654326 @ 和 remove 缓存的 2nd 片段。现在,如果您这样做,那么您将节省时间再次将其渲染到屏幕上。但请永远记住,它会消耗你的记忆。
如果您想要一个专门针对堆大小较小的设备的内存明智的应用程序,那么每次选择菜单时都重新创建片段。
【讨论】: