I have an activity which loads pictures in ImageViews with glide. Here is a sample of my glide code:
Glide.with(ImageVOne.getContext())
.load(geoInfo.getPhotoUrl1())
.skipMemoryCache(true)
.priority(Priority.NORMAL)
.into(ImageVOne);
I load from 1 to 35 pictures, each picture should be between 150ko & 250ko. I cannot reduce that.
This activity can be accessed several times in a session from the main activity, and each time it loads different pictures. For example the first time it will be pictures of Washington, then pictures of London etc.
My issue is that the use of memory increases a lot every time the activity that loads the pictures is started:
I can start the activity from 3 to 5 times, then the app crashes. The error message is
java.lang.OutOfMemoryError: Failed to allocate a 1411340 byte allocation with 1126320 free bytes and 1099KB until OOM
I read posts about memory leaks but I thought Glide would avoid this issue. My activity with the pictures is finished before another one is started, but the memory allocated to my app do not seem to drop.
I also added android:noHistory="true"
to my picture activity in the Manifest but it doesn't change anything.
I added android:largeHeap="true"
in my Manifest but it just postpone my issue (I can start the pictures activity about 10 to 15 times) and I get a lot of pictures not loaded in my imageviews before the app crashes, so its not a good solution for me.
I also tried to add .skipMemoryCache (true) when I use glide but I don't notice any change.
I guess my "memory use" should decrease every time I go from the pictures activity to the main activity, then increase when I start my pictures activity again with new pictures. But from what I see on the blue graph it almost only increases. Do you see what I should do?