Hi All i have strange memory leak with Bitmaps. First what i have - an activity that based on the workspace view from Launcher ( 3 screens current prev + next ) . This layout is supplied with adapter , so then i flipping left/right it loads next view. The views that adapter is providing is an ImageView (picture) with decodeBitmap + TextView(Caption). I also have on click listener that is set on the views that toggles captions which calls this:
public void onToggleCaption() { mAdapter.toggleCaption(); // sets boolean if is should display caption int currentScreen = mImageLayout.getCurrentScreen(); // remembers current screen number. mImageLayout.removeAllViews(); // Removes all three children mImageLayout.setCurrentScreen(currentScreen); // Set back everything back ( but now adapter will show or hide captions ) } When i call this from the menu - everything is just fine. Heap stays same +/- 1K. If i execute this code via onClick listener - i'm loosing memory quite quickly and in about 20th iteration - VM out of budget. adapter. public View getView(int position, View convertView, ViewGroup parent) { View newView = null; byte[] mFullImage; Enclosure enclosure = (Enclosure) getItem(position); if (convertView != null) newView = convertView; else { LayoutInflater layout = LayoutInflater.from(mContext); newView = layout.inflate(R.layout.image_layout, null); } //TODO - this can be optimized ImageView iView = (ImageView) newView.findViewById(R.id.image); TextView tView = (TextView) newView.findViewById(R.id.caption); Bitmap image = null; // mFullImage is a byte[] mFullImage = enclosure.getImage(); if (mFullImage != null) { try { image = BitmapFactory.decodeByteArray(mFullImage, 0, mFullImage.length); } catch (RuntimeException e) { Log.w(TAG, e); } } if (image != null) { iView.setImageBitmap(image); String caption = enclosure.getContent(); if (!caption.equals("") && mShowCaption) { tView.setVisibility(View.VISIBLE); tView.setText(caption); } else { tView.setVisibility(View.GONE); } } newView.setClickable(true); return newView; } --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---