• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Out of Memory Issue

I am calling 'setBackgroundResource' on some png files, which are in the res/drawable-mdpi folder, but not in the other folders.

But after a few back and forward loads the phone runs out of memory.
Any way to clear the memory so I can load the new graphics.

[HIGH]String map_up_theme_res = CoreFunctions.mapThemeRes("up");
String map_down_theme_res = CoreFunctions.mapThemeRes("down");
String service_up_theme_res = CoreFunctions.serviceThemeRes("up");
String service_down_theme_res = CoreFunctions.serviceThemeRes("down");
try {
townUpMap.setBackgroundResource(CoreFunctions.getResId(
map_up_theme_res, R.drawable.class));
townDownMap.setBackgroundResource(CoreFunctions.getResId(
map_down_theme_res, R.drawable.class));
serviceUpTray.setBackgroundResource(CoreFunctions.getResId(
service_up_theme_res, R.drawable.class));
serviceDownTray.setBackgroundResource(CoreFunctions.getResId(
service_down_theme_res, R.drawable.class));
} catch (OutOfMemoryError E) {

}[/HIGH]
 
So how do I use this in respect to my code, as just passing in a resource id. How do I get the Bitmap resource in order to recycle it.
 
You really shouldn't, the system should take care of it. You should really only recycle bitmaps when you're iterating through a lot of them.

Chances are you're leaking memory somewhere else that's adding up, and this is just where's its crashing. Make sure you're not holding onto static references of resource intensive objects like Activities.
 
Every Time I open an activity I am using this code:

[HIGH]final Intent intent = new Intent(cnt, myClass);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
cnt.startActivity(intent);[/HIGH]I am assuming that this clears the activity stack, which should free up memory?
 
Back
Top Bottom