我有一个活动,使用Glide在ImageView中加载图片。这是我的Glide代码示例:
Glide.with(ImageVOne.getContext())
.load(geoInfo.getPhotoUrl1())
.skipMemoryCache(true)
.priority(Priority.NORMAL)
.into(ImageVOne);
我需要加载1到35张图片,每张图片的大小应在150ko到250ko之间。我无法缩小它。
该活动可以从主活动中多次访问,并且每次它会加载不同的图片。例如,第一次将是华盛顿的图片,然后是伦敦等其他城市的图片。
我的问题是,每次启动加载图片的活动时,内存使用量都会大幅增加:
![enter image description here](https://istack.dev59.com/7Y2Su.webp)
java.lang.OutOfMemoryError: Failed to allocate a 1411340 byte allocation with 1126320 free bytes and 1099KB until OOM
我读到了有关内存泄漏的文章,但我认为Glide应该避免这个问题。我的图片活动在另一个活动开始之前就已经完成了,但是我的应用程序分配的内存似乎并没有减少。 我还在清单中的图片活动中添加了
android:noHistory="true"
,但它并没有改变任何东西。我在清单中添加了
android:largeHeap="true"
,但这只是推迟了我的问题(我可以启动大约10到15次图片活动),在我的ImageViews中有很多图片没有加载,然后应用程序崩溃,所以这对我来说不是一个好的解决方案。我也试图在使用Glide时添加.skipMemoryCache(true),但我没有注意到任何变化。
我想每次从图片活动返回主活动时,“内存使用”应该减少,然后当我再次启动我的图片活动时,随着新图片的增加而增加。但是从蓝色图表上看,它几乎只增加。你能看出我该怎么做吗?