【发布时间】:2011-12-03 17:17:44
【问题描述】:
我创建了一个动态壁纸,它通过将 70 个左右的图像存储在一个数组中来显示动画,然后每次显示一个以创建动画。我使用 CubeEngine 的结构来设计它。大多数情况下它都有效。
当我第一次选择壁纸时,它会加载数组并显示动画。然后,当我单击“设置壁纸”按钮时,我得到一个“OutOfMemoryError:位图大小超过 VM 预算”。我已经添加了 bitmap.recycle() 调用来尝试解决这个问题。
我已将 Log.d 放入所有事件中以尝试了解事件流。它看起来是当点击“设置壁纸”按钮时,流程直接进入构造函数。
不会触发 onDestroy 事件或 onSurfaceChanged 事件,也不会触发除 onTouchEvent 之外的任何其他事件。
所以我的原始图像数组在内存中,当它执行构造函数时,它会尝试用图像加载另一个数组并耗尽内存。
当他们单击“设置壁纸”按钮时,我找不到将逻辑放入其中以清除我的原始数组的事件。
有没有办法为“设置壁纸”按钮添加逻辑,或者我可以在我的代码中添加另一个我应该能够做到这一点的事件?
我看到其他人有这个问题,但没有看到解决方案。
任何建议将不胜感激。
【问题讨论】:
标签: android memory live wallpaper