在标题为“管理位图内存”的文档中,您可以找到以下语句:
注意:只有在确定不再使用位图时才应使用 recycle()。如果您调用 recycle() 并稍后尝试绘制位图,您将收到错误:“画布:尝试使用回收的位图”。
那么,“不再”究竟是什么意思呢?
我调用setImageDrawable(drawable)
我的片段 onCreateView(...) 方法。我recycle()
在片段的onStop() 中调用drawable 的位图。当用户现在通过启动另一个活动离开片段时,位图将被回收。但是当用户回到前一个片段时,它的 onCreateView() 会再次被调用,从而导致对“setImageDrawable(drawable)”的新调用。这抛出:
IllegalArgumentException: Cannot draw recycled bitmaps
所以,我似乎仍然处于“不再”的环境中。我什么时候可以得到一个没有被回收的新位图?只有在片段及其活动被完全破坏之后?