我有一个列表,每行都有按钮。我的应用程序中的按钮使用自定义主题和自定义drawable(每个约0.5Kb png)。 用户抱怨OutOfMemory错误,每周出现几次。
第一个想法是按钮加载BitmapDrawables并且不回收它们。所以它导致超过本机内存。 为了测试它,我用大约300Kb(jpgs)的更大图像改变了我的drawables。 在不同设备上测试Android版本2.1-2.3.x
我看到的内容:
因此,它遵循“没有人为按钮背景调用回收”。
检查回收可以帮助解决onPause方法中的问题我检索用于后台的Bitmap并自己回收它。 OutOfMemmory不再出现。
回收Views使用的每个drawable的任务吓到了我。我不敢相信android有 那种问题!
是否有一种解决方案更容易为每个drawable调用回收?
答案 0 :(得分:-1)
最好的解决方案是尽可能避免使用Buttons的drawables。