Android 当应用程序运行时内存超过其maxmemory时,DiskLruCache的OutofMemory异常

Android 当应用程序运行时内存超过其maxmemory时,DiskLruCache的OutofMemory异常,android,bitmap,out-of-memory,Android,Bitmap,Out Of Memory,我正在使用此链接中提供的DiskLruCache 用于处理outofmemory问题,但当缓存未命中时,它会从filedescriptor进行解码,而解码时它会增大堆大小,并且不会释放内存分配的Runtime.getRuntime.totalMemory,它会继续增大运行时内存,当它超过Runtime.getRuntime.maxMemory时,它会引发outofmemory执行选项,如何处理此问题如果您的sdk最低版本为11或更高,请尝试此方法 将以下内容添加到清单中的应用程序标记中 andr

我正在使用此链接中提供的DiskLruCache
用于处理outofmemory问题,但当缓存未命中时,它会从filedescriptor进行解码,而解码时它会增大堆大小,并且不会释放内存分配的Runtime.getRuntime.totalMemory,它会继续增大运行时内存,当它超过Runtime.getRuntime.maxMemory时,它会引发outofmemory执行选项,如何处理此问题如果您的sdk最低版本为11或更高,请尝试此方法

将以下内容添加到清单中的应用程序标记中

android:largeHeap="true"

希望它能对您有所帮助。

使用它加载大尺寸图像,避免outofmemory异常

发布您的代码,说明您如何使用磁盘LRU缓存。我遵循了链接中提供的相同代码,然后为磁盘LRU缓存提供了更少的内存或遵循,正如这里提到的:实际上,当LruCache未命中时,它将从filedescriptor中解码位图并将其添加到LruCache中,最近删除并将其添加到softreference hashset中,并使用inBitmap概念来避免outofmemory执行,但是运行时内存在不断增长,有时会超过并引发问题,那么您没有正确使用它,因为磁盘lru缓存只保留您给它的内存大小。tanx,但我已经这样做了,当它超过maxmemory时,就会引发这个问题