android片段何时调用bitmap.recycle()

时间:2011-12-19 09:31:31

标签: android android-fragments

我在片段中使用位图,并在片段的bitmap.recycle()方法中调用onDestroy()。但很多次我得到了例外

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

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

任何人都可以建议片段生命周期的最佳阶段,我应该致电bitmap.recycle()

2 个答案:

答案 0 :(得分:0)

你可以在onDestroyView或onDestory上回收,但要确保你在oncreate或onCreateView中再次创建你的位图..因为你再次使用相同的位图引用它会抛出回收的异常。因此,您需要在创建片段时再次创建位图,或者还可以检查isRecycled()以了解您的位图是否已被回收

答案 1 :(得分:0)

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

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

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