【发布时间】:2012-02-24 18:34:05
【问题描述】:
在我的 ondestroy 方法中,我回收了所有用于释放内存并防止应用程序在屏幕旋转期间崩溃的位图。事实证明,在冰淇淋三明治 (android 4.0) 之前,这对所有 API 都是正确的做法。现在,当我在 ICS 上旋转时,我会强制关闭并且 logcat 没用。我无法将其追溯到我的代码,但是当我删除位图回收时,它对 ICS 非常有用。对此有何想法?
【问题讨论】:
-
这可能无关紧要,但最近我看到 ICS 中的 initial 内存使用量上升了。我相信它现在正在预取所有可绘制对象。也许即使您没有对可绘制对象的引用,框架仍然存在并且它正在尝试设置您回收的位图?
-
你能判断崩溃是在 onDestroy() 期间还是之后发生的吗?如果您在几个可能有助于发现的地方粘贴 Log.d(TAG, "message") 调用?如果是在实际的 recycle() 调用期间,如果只在 isRecycled() 返回 false 的 Bitmap 对象上调用 recycle() 会发生什么?
标签: android bitmap rotation android-4.0-ice-cream-sandwich recycle