我在片段中使用位图,并在片段的bitmap.recycle()
方法中调用onDestroy()
。但很多次我得到了例外
E/AndroidRuntime(4869): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@40659750
我也尝试在片段的onDestroyView()
方法中执行此操作,但仍然得到相同的异常。
任何人都可以建议片段生命周期的最佳阶段,我应该致电bitmap.recycle()
答案 0 :(得分:0)
你可以在onDestroyView或onDestory上回收,但要确保你在oncreate或onCreateView中再次创建你的位图..因为你再次使用相同的位图引用它会抛出回收的异常。因此,您需要在创建片段时再次创建位图,或者还可以检查isRecycled()以了解您的位图是否已被回收
答案 1 :(得分:0)
我找到了解决方案,我正在努力解决完全相同的问题
我做的是删除了/每个片段的内容视图的所有子视图。 在每个片段的所有子视图都消失之后,我弹出了片段
我在每个片段的'OnDestroy'上回收了位图,就像你现在正在做的那样。