If i close and open my app several times i eventually get Out of Memory Error, does it mean i have memory leak?
I have an app which let users t开发者_如何学JAVAo pick an image from sd card and then app process the image. I am downsizing images to 1/5 of avialable vm memory and i do call recycle() for every bitmap in onDestroy() call and i still get out of memory error if i close and open my app multiple times.
There are various memory leak scenarios in Android. One way to track them down is to use the Traceview tool http://developer.android.com/guide/developing/debugging/debugging-tracing.html.
For more info on common Android memory leak problems see http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html
Note that when you finish the last Activity
of the app the Java process of your app may (in most cases will) be alive meaning all static stuff is still alive when you "start" the app again. Do you store any heavy objects in static fields?
Also note that according to the Activity
life-cycle the onDestroy()
is not guaranteed to be called. However I don't think this is related, because when you (versus the OS) close the Activity
(either by pressing 'Back' button or by calling finish()
from the code) then OS always calls onDestroy()
.
In general, without seeing the code it is difficult to say what happens.
精彩评论