【问题标题】:android fragment when to call bitmap.recycle()android片段何时调用bitmap.recycle()
【发布时间】:2011-12-19 09:31:30
【问题描述】:

我在片段中使用位图,并在片段的onDestroy() 方法中调用bitmap.recycle()。但有好几次我得到一个例外

E/AndroidRuntime(4869): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@40659750

我也尝试在片段的 onDestroyView() 方法中执行此操作,但仍然遇到相同的异常。

谁能建议我应该打电话给bitmap.recycle()的片段生命周期的最佳阶段是什么@

【问题讨论】:

标签: android android-fragments


【解决方案1】:

您可以在 onDestroyView 或 onDestory 中回收,但请确保您在 oncreate 或 onCreateView 中再次创建位图。当您再次使用相同的位图引用时,它会引发回收异常。所以你在创建fragment的时候需要重新创建bitmap或者你也可以通过isRecycled()来判断你的bitmap是否已经被回收了

【讨论】:

    【解决方案2】:

    我找到了解决方案,我正在努力解决完全相同的问题

    我所做的是我删除了/每个片段的内容视图的所有子视图。 在每个片段的所有子视图都消失后,我弹出片段

    就像你现在做的那样,我在每个片段的“OnDestroy”上回收了位图。

    【讨论】:

      猜你喜欢
      • 2015-04-21
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      相关资源
      最近更新 更多