Hi,
Would you please help me how to handle the memory leak on
Drawable.createFromStream()?
I am receiving a base64 image from a webservice. And I decode it using
Apache lib. After that I convert it to drawable through
Drawable.createFromStream(). But when the image size is bit larger (~>350kb)
it starts throwing OutOfMemoryError exception. Ok, I can handle this by
catching this exception. But eventually after catching 2 or 3 such
exceptions the heap is full and it start throwing exceptions for other
methods and for small images as well.
The relevant code snip is given below.
byte[] arr = null;
InputStream imageStream = null;
try
{
arr = Base64.decodeBase64(result.getScreenShot().getBytes());
imageStream = new BufferedInputStream(new
ByteArrayInputStream(arr));
TJCAppDetail.this.screenShotDrawable =
Drawable.createFromStream(imageStream, "src");
screenShot.setImageDrawable(screenShotDrawable);
}
catch (OutOfMemoryError outOfMemoryError)
{
arr = null;
imageStream = null;
if (screenShotDrawable != null)
{
screenShotDrawable.setCallback(null);
if (((BitmapDrawable) screenShotDrawable).getBitmap() != null)
((BitmapDrawable) screenShotDrawable).getBitmap().recycle();
}
Log.e("TJC_EXCEPTION", outOfMemoryError.getMessage());
}
--
Best Regards,
Atif Gulzar
I ◘◘◘◘ Unicode, ɹɐzlnƃ ɟıʇɐ
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en