我创建了一个动态壁纸,通过在数组中存储70个左右图像来显示动画,然后在创建动画时显示一个动画。我用CubeEngine的结构来设计它。它的大部分工作。动态壁纸 - “设置壁纸” - 需要用来清除内存的事件
当我第一次选择墙纸时,它会加载数组并显示动画。然后,当我点击“设置壁纸”按钮时,我得到一个“OutOfMemoryError:位图大小超过虚拟机预算”。我已经添加了bitmap.recycle()调用来尝试解决此问题。
我已经把Log.d放在所有的事件中去试图理解事件的流程。看起来像是当点击“Set Wallpaper”按钮时,流程直接进入构造器。
不会触发onDestroy事件或onSurfaceChanged事件,也不会触发除onTouchEvent之外的任何其他事件。
因此,我的原始图像数组存储在内存中,当它执行构造函数时,它会尝试将另一个数组与图像一起加载并耗尽内存。
我找不到一个事件来将逻辑放入以清除我的原始数组,当他们单击“设置壁纸”按钮时。
有没有办法给“设置壁纸”按钮添加逻辑,或者是否有另一个事件我可以添加到我的代码,我应该能够做到这一点?
我见过别人有这个问题,但还没有看到解决方案。
任何建议,将不胜感激。