【问题标题】:Why my ViewPager's Fragments are retained by FragmentActivity为什么我的 ViewPager 的 Fragment 被 FragmentActivity 保留
【发布时间】:2013-07-25 10:07:25
【问题描述】:

在我的FragmentActivity 中,我有一个Fragment(我们称之为HubFrag),它有一个ViewPager 使用FragmentStatePagerAdapter(它创建了一些片段,我们称之为'ItemFrag')。

当我用另一个新的Fragment 替换 HubFrag 时,HubFrag 会像预期的那样被销毁,但 ItemFrags 对象并非如此。 使用 eclipse mat 我看到我的 ItemFrags 对象被我的FragmentManagerImplFragmentActivity 保留... 为什么????

我解释了为什么我不希望它们仍在记忆中:

每个 ItemFrag 都会启动图片下载,如果这个弱引用为空,我的下载器(有一个 WeakReference 的 ItemFrag ImageView)不想处理 Bitmap(以减少内存使用)。

但下载器将始终解码Bitmap,因为弱引用永远不会为空... 谢谢!

【问题讨论】:

  • 这很奇怪。 FragmentStatePagerAdapter 应该从活动的 FragmentManager 中完全删除片段并创建片段的 Bundle 的 instanceState。也许在这里发布一些代码可以帮助找到问题?!
  • 发布一些代码会很困难,因为我使用了很多 lib、customView 等...但我解释的基本结构是等效的。

标签: android android-viewpager eclipse-memory-analyzer


【解决方案1】:

我找到了导致我的问题的原因: 我使用getSupportFragmentManager 填充HubFrag 的ViewPager,使用getChildFragmentManager 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 2012-05-23
    • 2012-10-08
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2020-02-22
    相关资源
    最近更新 更多