作者:摩西摩西 | 来源:互联网 | 2023-05-28 13:14
我在我的应用程序中使用滑动库来显示位图(来自资产和来自url).它运作良好,但我得到了回忆问题因为我在每个活动中显示了很多图像.我看到我可以使用BitmapPool中的clearMemory(),但我不知道如何调用它.
有人知道怎么称呼它吗?
谢谢
1> Sam Judd..:
您可以使用clearMemory()
或trimMemory()
清除Glide的内存缓存和位图池:
Glide.get(context).clearMemory()
// or:
Glide.get(context).trimMemory(ComponentCallbacks2.TRIM_MEMORY_MODERATE);
也就是说,你不应该做任何一件事.要检查两件事:
你在加载多个大图像吗?如果是这样,您需要确保它们是缩减采样的,因此请考虑在您正在加载图像的视图中设置一个明确的大小,或者override()
根据您的请求使用Glide的API.与类似转换一起使用fitCenter
将有助于减少每个图像使用的内存.
您的应用程序中是否存在内存泄漏?虽然Bitmap分配经常抛出实际的OutOfMemoryException,但大多数时候根本原因是应用程序中其他地方的内存泄漏.如果#1无法解决您的问题,请尝试捕获堆转储并检查泄漏.Android开发人员页面有一个很好的教程,如何这样做.