【发布时间】:2013-07-25 10:07:25
【问题描述】:
在我的FragmentActivity 中,我有一个Fragment(我们称之为HubFrag),它有一个ViewPager 使用FragmentStatePagerAdapter(它创建了一些片段,我们称之为'ItemFrag')。
当我用另一个新的Fragment 替换 HubFrag 时,HubFrag 会像预期的那样被销毁,但 ItemFrags 对象并非如此。
使用 eclipse mat 我看到我的 ItemFrags 对象被我的FragmentManagerImpl 的FragmentActivity 保留...
为什么????
我解释了为什么我不希望它们仍在记忆中:
每个 ItemFrag 都会启动图片下载,如果这个弱引用为空,我的下载器(有一个 WeakReference 的 ItemFrag ImageView)不想处理 Bitmap(以减少内存使用)。
但下载器将始终解码Bitmap,因为弱引用永远不会为空...
谢谢!
【问题讨论】:
-
这很奇怪。 FragmentStatePagerAdapter 应该从活动的 FragmentManager 中完全删除片段并创建片段的 Bundle 的 instanceState。也许在这里发布一些代码可以帮助找到问题?!
-
发布一些代码会很困难,因为我使用了很多 lib、customView 等...但我解释的基本结构是等效的。
标签: android android-viewpager eclipse-memory-analyzer