[android-developers] Re: Strange memory consumption switching between activities

2013-04-06 Thread RichardC
You need to do is :
A - start B - AB - finish B - A - start B - AB - finish B - A


What you are doing (if you have explained correctly is):
A - start B - B - start A - ABA - start B - ABA - start B - ABAB etc




On Saturday, April 6, 2013 5:56:39 PM UTC+1, user123 wrote:

 I'm running an app in a 4.2 Nexus 7 device. It has 64 mb app memory.

 I have 2 activities - and a button to toggle between them. When I start 
 activity A, then B, then A, B, A, B, etc. After a while I get an out of 
 memory error.

 I investigated this problem with a heap dump and the memory analysis 
 tools. I found that, basically, the problem is, that the main view - 
 instances of these activities, are kept in memory- and instantiated again 
 and again every time I start this activity!

 Concretly:
  
 - In activity A I have a coverflow instance, which is basically a Gallery 
 with some 3d effect. 
 - In activity B I have a gridview

 If I switch let's say 8 times between A and B, the heap analysis shows me 
 that 8 instances of coverflow, and 8 instances of gridview are in memory! 
 Each occupying ~1.4 mb

 BTW: I'm using images, but these are managed by universal image loader 
 library, which I have used frequently now and doesn't seem to cause 
 problems / leaks. Also, the bitmap - occupied space shown by the memory 
 analysis is small. The big issue are these instances of coverflow and 
 gridview.

 I'm not retaining these instances in static variables or anything. I don't 
 know why they are kept in memory.

 I also added System.gc calls and method to clear the memory cache of the 
 image loader library - but this doesn't help. Since the main problem seem 
 to be that these instances are retained (although I don't know 
 how/where), I understand that gc doesn't help.

 So, after the users switch screens a while, they get an out of memory. How 
 can I solve this? I went through many option of the memory analysis but 
 didn't find anything that tells me, where/how/when these instances are 
 retained.

 Thanks in advance.












-- 
-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Android Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[android-developers] Re: Strange memory consumption switching between activities

2013-04-06 Thread user123
Ah. Right. I'm an idiot :) I have a side navigation menu and there user can 
keep tapping item A, item B, item A, item B, etc. And everything is kept in 
the navigation stack.

Now I'm calling finish on the current activity after starting a new one. 
The problem seems to be fixed. Thanks!


Am Samstag, 6. April 2013 22:48:01 UTC+2 schrieb RichardC:

 You need to do is :
 A - start B - AB - finish B - A - start B - AB - finish B - A


 What you are doing (if you have explained correctly is):
 A - start B - B - start A - ABA - start B - ABA - start B - ABAB etc




 On Saturday, April 6, 2013 5:56:39 PM UTC+1, user123 wrote:

 I'm running an app in a 4.2 Nexus 7 device. It has 64 mb app memory.

 I have 2 activities - and a button to toggle between them. When I start 
 activity A, then B, then A, B, A, B, etc. After a while I get an out of 
 memory error.

 I investigated this problem with a heap dump and the memory analysis 
 tools. I found that, basically, the problem is, that the main view - 
 instances of these activities, are kept in memory- and instantiated again 
 and again every time I start this activity!

 Concretly:
  
 - In activity A I have a coverflow instance, which is basically a Gallery 
 with some 3d effect. 
 - In activity B I have a gridview

 If I switch let's say 8 times between A and B, the heap analysis shows me 
 that 8 instances of coverflow, and 8 instances of gridview are in memory! 
 Each occupying ~1.4 mb

 BTW: I'm using images, but these are managed by universal image loader 
 library, which I have used frequently now and doesn't seem to cause 
 problems / leaks. Also, the bitmap - occupied space shown by the memory 
 analysis is small. The big issue are these instances of coverflow and 
 gridview.

 I'm not retaining these instances in static variables or anything. I 
 don't know why they are kept in memory.

 I also added System.gc calls and method to clear the memory cache of the 
 image loader library - but this doesn't help. Since the main problem seem 
 to be that these instances are retained (although I don't know 
 how/where), I understand that gc doesn't help.

 So, after the users switch screens a while, they get an out of memory. 
 How can I solve this? I went through many option of the memory analysis but 
 didn't find anything that tells me, where/how/when these instances are 
 retained.

 Thanks in advance.












-- 
-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Android Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.