【问题标题】: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”上回收了位图。