【发布时间】:2013-12-03 00:23:00
【问题描述】:
我正在使用此链接中提供的 DiskLruCache http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html 用于处理内存不足问题,但是当发生缓存未命中时,它正在从文件描述符中解码,在解码时它正在增加堆大小并且它没有释放分配的内存 (Runtime.getRuntime().totalMemory()) 它继续增加运行时内存当它超过 Runtime.getRuntime().maxMemory() 时,它会引发内存不足的执行,如何处理这个任何建议将不胜感激
【问题讨论】:
-
发布你的代码,你是如何使用磁盘 LRU 缓存的。
-
我遵循链接developer.android.com/training/displaying-bitmaps/…中提供的相同代码
-
然后给磁盘 LRU 缓存分配更少的内存或者按照这里提到的:shaikhhamadali.blogspot.com/2013/09/…
-
实际上当发生 LruCache 未命中时,它会从 filedescriptor 解码位图并将其添加到 LruCache 并最近删除并将其添加到软引用
哈希集中并使用 inBitmap 概念来避免内存不足的执行,但是运行时内存不断增长,有时会超过并引发该问题 -
那么你没有以正确的方式使用它,因为磁盘 lru 缓存只保留你给它的内存大小。
标签: android bitmap out-of-memory