Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 毕加索MemoryPolicy.NO_CACHE/NO_STORE仍在增加分配和内存消耗_Java_Android_Caching_Memory_Picasso - Fatal编程技术网

Java 毕加索MemoryPolicy.NO_CACHE/NO_STORE仍在增加分配和内存消耗

Java 毕加索MemoryPolicy.NO_CACHE/NO_STORE仍在增加分配和内存消耗,java,android,caching,memory,picasso,Java,Android,Caching,Memory,Picasso,所以,我陷入了记忆问题 java.lang.OutOfMemoryError 我发现这是由于毕加索库正在缓存图像并创建错误java.lang.OutOfMemoryError,所以我找到了解决方案,并将android:largeHeap=“true”添加到我的清单中,之后没有遇到错误,但这解决了我的问题否因此我几乎没有大图像和小图像,因此开始跳过在我的应用程序中缓存大图像,方法是使用MemoryPolicy,如下所示:- Picasso.with(this).load('''').memory

所以,我陷入了记忆问题

java.lang.OutOfMemoryError

我发现这是由于
毕加索
库正在缓存图像并创建错误
java.lang.OutOfMemoryError
,所以我找到了解决方案,并将
android:largeHeap=“true”
添加到我的清单中,之后没有遇到错误,但这解决了我的问题
因此我几乎没有大图像和小图像,因此开始跳过在我的应用程序中缓存大图像
,方法是使用
MemoryPolicy
,如下所示:-

 Picasso.with(this).load('''').memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE).error(R.drawable.noimagefound).placeholder( R.drawable.progress_animation ).fit().into(backdrop);
然而,我看到我的应用程序消耗了越来越多的内存:-

这使得我的应用程序有时会滞后

当我加载大图像时,图像数量显著增加
是否有合适的标准来使用缓存,或者在一段时间后清除缓存,我是否正确使用缓存,然后增加分配的大小?
任何提示都会有帮助
谢谢

如果你的位图太大,毕加索什么也做不了。在加载图像之前,需要调整图像大小。在毕加索链中添加
.resize(width,height)
以加载较小的位图。

如果位图太大,毕加索将无能为力。在加载图像之前,需要调整图像大小。在毕加索链中添加
。调整大小(宽度、高度)
,以加载较小的位图。

您尝试过使用Glide库吗?与毕加索相比,格莱德的记忆效率更高。 如果你的应用程序大小很大,并且你的应用程序中有大量图像功能。应用程序开始崩溃毕加索库,出现outOfMemory异常。

您尝试过Glide库吗?与毕加索相比,格莱德的记忆效率更高。
如果你的应用程序大小很大,并且你的应用程序中有大量图像功能。应用程序开始崩溃毕加索库,出现outOfMemory异常。

我的url中已经有了可用的大小调整,并且获得了一个标称大小。它们没有那么大,大约40kb,问题在于缓存增加。事件完成30-40次后会发生这种情况。如果这样,您的实现中可能会出现问题,不允许对位图进行垃圾收集并造成内存泄漏。顺便说一句,默认情况下,缓存在存储器中完成,而不是在RAM中完成,所以你不必担心。这个问题是在
Picasso
中使用MemoryPolicy,我已经在我的url中进行了大小调整,并获得了一个标称大小,它们没有那么大,大约40kb,问题是随着缓存的增加,事件完成30-40次后会发生,如果是这样,您的实现中可能存在问题,不允许对位图进行垃圾收集并造成内存泄漏。顺便说一句,默认情况下,缓存是在存储器中完成的,而不是在RAM中,因此您不必担心。此外,这个问题是在
Picasso
中使用MemoryPolicy这是离题的!这是离题的!