I have been having a LOT of memory issues with my app. I'm trying to catch the memory exceptions and then display a message using toast saying out of memory.
When I run the app with the tast code it crashes. When I run it in the debugger, does not crash but no message comes up.
I'm trying to display the message within the catch memory exception inside the onCreate method of the Activty class.
code block:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set size of card image
ImageView CardImage = ( ImageView)findViewById(R.id.viewcard);
int ScreenWidth=getWindowManager().getDefaultDisplay().getWidth();
int ScreenHeight=getWindowManager().getDefaultDisplay().getHeight();
// fix for tblets
if (ScreenHeight<ScreenWidth)
ScreenWidth=ScreenHeight;
int CardWidth=ScreenWidth/2;
CardWidth+=CardWidth/10;
// set bitmap
// Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.card2);
String FileName=new String("card");
FileName+=Integer.toString( CardId+1);
FileName+=".jpg";
// put in text that matches card
TextView mCardText = (TextView)findViewById(R.id.cardtext);
mCardText.setText( "Card Meaning \n"+ cCardText.mCardMeaning[ CardId]);
// put in text that matches card
TextView mHouseText = (TextView)findViewById(R.id.housetext);
mHouseText.setText( "House Meaning \n"+ cCardText.mHouseMeaning[ HouseId-1]);
try {
AssetManager assetManager= getAssets();
InputStream inputStream;
inputStream=assetManager.open(FileName);
Bitmap icon=BitmapFactory.decodeStream(inputStream);
CardImage.setImageBitmap(icon);
} catch( OutOfMemoryError e)
{
/////////////////////////////////////////////////////////////////////
// crashes heare
Context context = getApplicationContext();
CharSequence text = "Out of Memory ";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
gi++;
return;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
//scale it
// note: only code here that pertains to card image, becouse if card image cannot be loaded
// the above exceptions will go off and we will never get here
CardImage.getLayoutParams().width=CardWidth;
CardImage.getLayoutParams().height = (int)( (float) CardWidth *1.7);
}