Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 缓存片段是一种好的做法吗?_Android - Fatal编程技术网

Android 缓存片段是一种好的做法吗?

Android 缓存片段是一种好的做法吗?,android,Android,有一个活动,一个侧菜单和多个片段s。当我在侧菜单中选择菜单时,一个特定的片段被添加到活动中,之前的片段被删除。在这个应用程序中,我是否必须缓存片段对象?或者每次我选择菜单时重新创建新的片段?哪一个更好 do I have to cache Fragment object? 请记住,如果缓存了一个包含多个视图的片段,可能会占用内存,从而导致OutOfMemoryException堆已满,并且正在将内存分配给另一个片段 or just recreate new Fragment every ti

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

 do I have to cache Fragment object?
请记住,如果缓存了一个包含多个视图的片段,可能会占用内存,从而导致
OutOfMemoryException
堆已满,并且正在将内存分配给另一个片段

or just recreate new Fragment every time I selected menu? which one is better?
如果您的片段没有很多视图,那么我将只缓存每侧的1或2个片段

假设您有5个片段(1-2-3-4-5),您当前位于
3个片段
,我只缓存2个4个片段,但
1和5个片段
但是如果我将片段更改为4th,那么我将缓存
3th和5th片段
,并删除缓存的2nd片段。现在,如果执行此操作,则可以节省再次将其渲染到屏幕上的时间。但要永远记住,这会消耗你的记忆

如果您想创建一个专门用于堆大小较低的设备的内存应用程序,请在每次选择菜单时重新创建该片段。

请参阅此