[android-developers] Re: out of memory error & getWallpaper

2009-08-20 Thread Hong

I'm seeing the same out of memory problem.
It's consistent on my G1 in a few tries.

Basically I used the built-in intent to get the photo on my sdcard,
and set it as the app's background:
Drawable d = Drawable.createFromPath(filename);
mainBg.setBackgroundDrawable(d);

The filename is what passed back from the photo picker in onActivityResult().

Doing this a few times will cause out of memory exception,
reproducible 100% of the time.
If the VM is to *eventually* free up the bitmap object memory, I
suspect it's not doing its job well.

I will give the recyle() a try now, and see if there's any improvement.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-20 Thread Hong

Here's the crash log file in case you are interested:

08-20 10:08:00.700: INFO/ActivityManager(18682): Displayed activity
com.android.camera/.ImageGallery2: 1137 ms
08-20 10:08:01.220: VERBOSE/ImageGallery2(20461): /ImageBlockManager.onPause
08-20 10:08:01.280: DEBUG/Main(20546): /sdcard/dcim/Camera/2009-07-27
19.18.31.jpg
08-20 10:08:01.300: ERROR/dalvikvm-heap(20546): 6291456-byte external
allocation too large for this process.
08-20 10:08:01.300: ERROR/(20546): VM won't let us allocate 6291456 bytes
08-20 10:08:01.300: DEBUG/AndroidRuntime(20546): Shutting down VM
08-20 10:08:01.300: WARN/dalvikvm(20546): threadid=3: thread exiting
with uncaught exception (group=0x4000fe70)
08-20 10:08:01.300: ERROR/AndroidRuntime(20546): Uncaught handler:
thread main exiting due to uncaught exception
08-20 10:08:01.310: ERROR/AndroidRuntime(20546):
java.lang.OutOfMemoryError: bitmap size exceeds VM budget

The picture is something I took with G1 camera, nothing special.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-20 Thread Hong

@Nivek

THANK YOU the recycle() call works GREAT!
((BitmapDrawable)d).getBitmap().recycle();

I went through 10~15 photos w/o crashing!

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-20 Thread Nivek

Well, even if we should "normally" not call the recycle method, I see
in ApiDemos some calls to this method :
LabelMaker.java - line 281
SpriteTextRenderer.java - line 122
TriangleRenderer.java - line 106

I tried to solve a problem of memory allocation when loading big files
(4000x3000 pics) yesterday and again the manual call to recycle() is
the only working solution I could find to be able to display these
pics one after the other.

Nivek
On 20 août, 16:40, Hong  wrote:
> @Nivek
>
> THANK YOU the recycle() call works GREAT!
> ((BitmapDrawable)d).getBitmap().recycle();
>
> I went through 10~15 photos w/o crashing!
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-22 Thread sameer

Hi Steve,

PLease let me know how you fixed the belllow exeption
run-time exception the next
attempt to use recycled bitmap.

I m also getting the same exeption
 trying to use a recycled bitmap android.graphics.bit...@43750030


Please reply back. Your reply will be highly appreciated.

Thanks and regards
Mohammed Sameer

On Aug 18, 1:38 am, Flying Coder  wrote:
> Hi Nivek,
>     Unfortunately, doing recycle on the drawable returned by
> ContextWrapper.getWallpaper() results in a run-time exception the next
> time the app is launched:  attempt touserecycledbitmap.  Though
> curiously, if I launch the app again after receiving the exeption, it
> works fine.  I.e., run time exception every other launch.
>
>     At any rate, thanks for the pointer to Romain Guy's blog -- I
> wasn't aware of the onRetainNonConfigurationInstance method.  Should
> be useful in some cases.
>
> Cheers,
> Steve
>
> On Aug 17, 10:53 am, Nivek  wrote:
>
>
>
> > When you change the device orientation, you app is closed and then
> > reopened.
>
> > Android handles bitmaps a "special" way, you HAVE to explicitly
> > recycle them as soon as you don't need them anymore... or they stay
> > allocated in memory and NEVER get freed.
>
> > I have started to code an app which uses a set of ImageViews. To avoid
> > allocation errors on orientation changes, I had to override the
> > onDestroy() method this way :
> >         /*
> >          * (non-Javadoc)
> >          *
> >          * @see android.app.Activity#onDestroy()
> >          */
> >         @Override
> >         protected void onDestroy() {
> >                 super.onDestroy();
> >                 if (isFinishing()) {
> >                         for (ImageView view : mImgViews) {
> >                                 Drawable toRecycle = view.getDrawable
> > ();
> >                                 if (toRecycle != null) {
> >                                         ((BitmapDrawable)
> > toRecycle).getBitmap().recycle();
> >                                 }
> >                         }
> >                 }
> >         }
>
> > After this, If the orientation change time is too long, you have to
> > store the data (bitmaps and whatever else you need) with
> > onRetainNonConfigurationInstance() and get them back on reinit with
> > getLastNonConfigurationInstance().
>
> > This has been explained by Romain Guy on his blog 
> > :http://www.curious-creature.org/2009/02/16/faster-screen-orientation-...
>
> > On 17 août, 15:58, Flying Coder  wrote:
>
> > > This has been driving me nuts and I'm hoping someone will be able to
> > > help me understand what is happening (or better yet, how to fix
> > > it! ;-).
>
> > > I set the background image in one of my apps to the system wallpaper
> > > image using the following code:
>
> > >    Drawable wp = this.getWallpaper();
> > >    background = (ImageView) findViewById(R.id.background);
> > >    background.setImageDrawable(wp);
>
> > > This seems to work fine, but periodically, I get the out of memory
> > > error shown below.  Actually, on the emulator, all I have to do is
> > > repeatedly rotate the device and this error will consistently happen
> > > after 10-12 rotations.  On the G1, opening and closing the keyboard
> > > doesn't seem to cause this, but I'll still get the failure every once
> > > in a while.
>
> > > Is getWallpaper() actually making a copy of the image (I would have
> > > thought I'd just get a refernece to the existingbitmap)?  Do I need
> > > to do anything special to free the image?
>
> > > 08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
> > > allocation too large for this process.
> > > 08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
> > > bytes
> > > 08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
> > > 08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
> > > with uncaught exception (group=0x4000fe70)
> > > 08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
> > > thread main exiting due to uncaught exception
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
> > > java.lang.OutOfMemoryError:bitmapsize exceeds VM budget
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
> > > Method)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
> > > 424)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > android.app.ApplicationContext.getCurrentWallpaperLocked
> > > (ApplicationContext.java:523)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > android.app.ApplicationContext.peekWallpaper(ApplicationContext.java:
> > > 515)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > android.app.ApplicationContext.getWallpaper(ApplicationContext.java:
> > > 504)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > android.content.Con

[android-developers] Re: out of memory error & getWallpaper

2009-08-22 Thread sameer

Hi Nivek,

Can you please tell me the solution for the problem attempt to use
recycled bitmap

Any solution please let me know.

Your reply will be highly appreaciated

Thanks and Regards
Mohammed Sameer

On Aug 17, 11:53 pm, Nivek  wrote:
> When you change the device orientation, you app is closed and then
> reopened.
>
> Android handles bitmaps a "special" way, you HAVE to explicitly
> recycle them as soon as you don't need them anymore... or they stay
> allocated in memory and NEVER get freed.
>
> I have started to code an app which uses a set of ImageViews. To avoid
> allocation errors on orientation changes, I had to override the
> onDestroy() method this way :
>         /*
>          * (non-Javadoc)
>          *
>          * @see android.app.Activity#onDestroy()
>          */
>         @Override
>         protected void onDestroy() {
>                 super.onDestroy();
>                 if (isFinishing()) {
>                         for (ImageView view : mImgViews) {
>                                 Drawable toRecycle = view.getDrawable
> ();
>                                 if (toRecycle != null) {
>                                         ((BitmapDrawable)
> toRecycle).getBitmap().recycle();
>                                 }
>                         }
>                 }
>         }
>
> After this, If the orientation change time is too long, you have to
> store the data (bitmaps and whatever else you need) with
> onRetainNonConfigurationInstance() and get them back on reinit with
> getLastNonConfigurationInstance().
>
> This has been explained by Romain Guy on his blog 
> :http://www.curious-creature.org/2009/02/16/faster-screen-orientation-...
>
> On 17 août, 15:58, Flying Coder  wrote:
>
>
>
> > This has been driving me nuts and I'm hoping someone will be able to
> > help me understand what is happening (or better yet, how to fix
> > it! ;-).
>
> > I set the background image in one of my apps to the system wallpaper
> > image using the following code:
>
> >    Drawable wp = this.getWallpaper();
> >    background = (ImageView) findViewById(R.id.background);
> >    background.setImageDrawable(wp);
>
> > This seems to work fine, but periodically, I get the out of memory
> > error shown below.  Actually, on the emulator, all I have to do is
> > repeatedly rotate the device and this error will consistently happen
> > after 10-12 rotations.  On the G1, opening and closing the keyboard
> > doesn't seem to cause this, but I'll still get the failure every once
> > in a while.
>
> > Is getWallpaper() actually making a copy of the image (I would have
> > thought I'd just get a refernece to the existingbitmap)?  Do I need
> > to do anything special to free the image?
>
> > 08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
> > allocation too large for this process.
> > 08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
> > bytes
> > 08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
> > 08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
> > with uncaught exception (group=0x4000fe70)
> > 08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
> > thread main exiting due to uncaught exception
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
> > java.lang.OutOfMemoryError:bitmapsize exceeds VM budget
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
> > Method)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
> > 424)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ApplicationContext.getCurrentWallpaperLocked
> > (ApplicationContext.java:523)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ApplicationContext.peekWallpaper(ApplicationContext.java:
> > 515)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ApplicationContext.getWallpaper(ApplicationContext.java:
> > 504)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.content.ContextWrapper.getWallpaper(ContextWrapper.java:201)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at onCreate
> > (MyApp.java:247)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> > 1123)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> > 2231)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> > 2284)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ActivityThread.access$1800(ActivityThread.java:112)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
> > 08-17 08:32:38.313: ERR

[android-developers] Re: out of memory error & getWallpaper

2009-08-22 Thread sameer

Hi,

I am getting the following logs when i am changing the wallpaper for
Homescreen.

Even i am recycling the bitmap is done when the wallpaper changes in
OnWallpaperChanged(). Still i m getting the bellow error.

03-26 05:02:16.829: INFO/AC(1340): setWallpaper(InputStream
03-26 05:02:16.840: INFO/AC(1340): setWallpaper(InputStream,
FileOutputStream)
03-26 05:02:16.889: INFO/WallpaperService(1059): Wallpaper is
changed!!!
03-26 05:02:16.899: INFO/WallpaperService(1059): beginBroadcast()2
03-26 05:02:16.899: INFO/ApplicationContext(1694): com.lge.homecube
03-26 05:02:16.899: INFO/ApplicationContext(1694): applicationContext
is not null
03-26 05:02:16.899: INFO/ApplicationContext(1694): make mWallpaper
null
03-26 05:02:16.909: INFO/WallpaperService(1059): onWallpaperChanged0
03-26 05:02:16.909: INFO/WallpaperService(1059): notifyCallbacks()
03-26 05:02:16.909: INFO/ApplicationContext(1059): android
03-26 05:02:16.909: INFO/ApplicationContext(1059): applicationContext
is not null
03-26 05:02:16.909: INFO/ApplicationContext(1059): make mWallpaper
null
03-26 05:02:16.909: INFO/WallpaperService(1059): onWallpaperChanged1
03-26 05:02:16.909: INFO/WallpaperService(1059): notifyCallbacks()
03-26 05:02:16.989: WARN/dalvikvm(1694): threadid=3: thread exiting
with uncaught exception (group=0x40013e70)
03-26 05:02:16.989: ERROR/AndroidRuntime(1694): Uncaught handler:
thread main exiting due to uncaught exception
03-26 05:02:17.019: WARN/LockPatternKeyguardView(1059):
LockpatternKeyguardView WallpaperIntentReceiver_getWallpaper start
03-26 05:02:17.019: INFO/ApplicationContext(1059): getWallpaper()
03-26 05:02:17.029: INFO/ApplicationContext(1059): android
03-26 05:02:17.029: INFO/ApplicationContext(1059): GetCurrentWallaper
03-26 05:02:17.029: INFO/ApplicationContext(1059): Normal image
wallpaper
03-26 05:02:17.029: INFO/WallpaperService(1059): List Of Callbacks
03-26 05:02:17.079: ERROR/AndroidRuntime(1694):
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap
android.graphics.bit...@43895170
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.graphics.Canvas.throwIfRecycled(Canvas.java:942)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.graphics.Canvas.drawBitmap(Canvas.java:962)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
com.lge.homecube.Workspace.dispatchDraw(Workspace.java:596)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewGroup.drawChild(ViewGroup.java:1484)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
com.lge.homecube.DragLayer.dispatchDraw(DragLayer.java:280)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewGroup.drawChild(ViewGroup.java:1484)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.View.draw(View.java:5862)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.widget.FrameLayout.draw(FrameLayout.java:352)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewGroup.drawChild(ViewGroup.java:1486)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1228)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.View.draw(View.java:5862)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.widget.FrameLayout.draw(FrameLayout.java:352)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
com.android.internal.policy.impl.PhoneWindow$DecorView.draw
(PhoneWindow.java:1892)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewRoot.draw(ViewRoot.java:1239)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewRoot.performTraversals(ViewRoot.java:1049)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.view.ViewRoot.handleMessage(ViewRoot.java:1507)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.os.Handler.dispatchMessage(Handler.java:99)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.os.Looper.loop(Looper.java:123)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
android.app.ActivityThread.main(ActivityThread.java:3948)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
java.lang.reflect.Method.invokeNative(Native Method)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
java.lang.reflect.Method.invoke(Method.java:521)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:782)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
03-26 05:02:17.079: ERROR/AndroidRuntime(1694): at
dalvik.system.NativeStart.main(Native Method)
03-26 05:02:17.269: INFO/ApplicationContext(1059): Read wallpaper
file.
03-26 05:02:17.629: INFO/

[android-developers] Re: out of memory error & getWallpaper

2009-08-24 Thread freeanderson

I guess nobody reported my case.
I've solved like below. See my case.

...

Bitmap dummy = Bitmap.createBitma(1, 1, Config.RGB_565);

Bitmap a = Bitmap.createBitma(100, 100, Config.RGB_565);
Canvas c = new Canvas(a);

...c.draw(..) ...

a.recycle();
c.setBitmap(dummy); // This is key point. Very important to remove
reference of 'c'.

a = null;
c = null;

.

Good Luck.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-28 Thread Sables

Are we not able to reassign Bitmaps? I get OOM just by doing something
like

Bitmap a;

a = network.downloadimage();
a = network.downloadimage();
a = network.downloadimage();// <-- crash

Do I have to :

a.recycle() ;
a= null;

everytime?


On Aug 25, 2:25 pm, freeanderson  wrote:
> I guess nobody reported my case.
> I've solved like below. See my case.
>
> ...
>
> Bitmap dummy = Bitmap.createBitma(1, 1, Config.RGB_565);
>
> Bitmap a = Bitmap.createBitma(100, 100, Config.RGB_565);
> Canvas c = new Canvas(a);
>
> ...c.draw(..) ...
>
> a.recycle();
> c.setBitmap(dummy); // This is key point. Very important to remove
> reference of 'c'.
>
> a = null;
> c = null;
>
> .
>
> Good Luck.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Nivek

When you change the device orientation, you app is closed and then
reopened.

Android handles bitmaps a "special" way, you HAVE to explicitly
recycle them as soon as you don't need them anymore... or they stay
allocated in memory and NEVER get freed.

I have started to code an app which uses a set of ImageViews. To avoid
allocation errors on orientation changes, I had to override the
onDestroy() method this way :
/*
 * (non-Javadoc)
 *
 * @see android.app.Activity#onDestroy()
 */
@Override
protected void onDestroy() {
super.onDestroy();
if (isFinishing()) {
for (ImageView view : mImgViews) {
Drawable toRecycle = view.getDrawable
();
if (toRecycle != null) {
((BitmapDrawable)
toRecycle).getBitmap().recycle();
}
}
}
}

After this, If the orientation change time is too long, you have to
store the data (bitmaps and whatever else you need) with
onRetainNonConfigurationInstance() and get them back on reinit with
getLastNonConfigurationInstance().

This has been explained by Romain Guy on his blog :
http://www.curious-creature.org/2009/02/16/faster-screen-orientation-change-with-android/




On 17 août, 15:58, Flying Coder  wrote:
> This has been driving me nuts and I'm hoping someone will be able to
> help me understand what is happening (or better yet, how to fix
> it! ;-).
>
> I set the background image in one of my apps to the system wallpaper
> image using the following code:
>
>    Drawable wp = this.getWallpaper();
>    background = (ImageView) findViewById(R.id.background);
>    background.setImageDrawable(wp);
>
> This seems to work fine, but periodically, I get the out of memory
> error shown below.  Actually, on the emulator, all I have to do is
> repeatedly rotate the device and this error will consistently happen
> after 10-12 rotations.  On the G1, opening and closing the keyboard
> doesn't seem to cause this, but I'll still get the failure every once
> in a while.
>
> Is getWallpaper() actually making a copy of the image (I would have
> thought I'd just get a refernece to the existing bitmap)?  Do I need
> to do anything special to free the image?
>
> 08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
> allocation too large for this process.
> 08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
> bytes
> 08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
> 08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
> with uncaught exception (group=0x4000fe70)
> 08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
> thread main exiting due to uncaught exception
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
> java.lang.OutOfMemoryError: bitmap size exceeds VM budget
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
> Method)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
> 424)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ApplicationContext.getCurrentWallpaperLocked
> (ApplicationContext.java:523)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ApplicationContext.peekWallpaper(ApplicationContext.java:
> 515)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ApplicationContext.getWallpaper(ApplicationContext.java:
> 504)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.content.ContextWrapper.getWallpaper(ContextWrapper.java:201)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at onCreate
> (MyApp.java:247)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> 1123)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> 2231)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
> 2284)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ActivityThread.access$1800(ActivityThread.java:112)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.os.Handler.dispatchMessage(Handler.java:99)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.os.Looper.loop(Looper.java:123)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> android.app.ActivityThread.main(ActivityThread.java:3948)
> 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> java.lang.reflect.Method.invokeNative(Native Method)
> 08

[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Flying Coder

Hi Nivek,
Unfortunately, doing recycle on the drawable returned by
ContextWrapper.getWallpaper() results in a run-time exception the next
time the app is launched:  attempt to use recycled bitmap.  Though
curiously, if I launch the app again after receiving the exeption, it
works fine.  I.e., run time exception every other launch.

At any rate, thanks for the pointer to Romain Guy's blog -- I
wasn't aware of the onRetainNonConfigurationInstance method.  Should
be useful in some cases.

Cheers,
Steve


On Aug 17, 10:53 am, Nivek  wrote:
> When you change the device orientation, you app is closed and then
> reopened.
>
> Android handles bitmaps a "special" way, you HAVE to explicitly
> recycle them as soon as you don't need them anymore... or they stay
> allocated in memory and NEVER get freed.
>
> I have started to code an app which uses a set of ImageViews. To avoid
> allocation errors on orientation changes, I had to override the
> onDestroy() method this way :
>         /*
>          * (non-Javadoc)
>          *
>          * @see android.app.Activity#onDestroy()
>          */
>         @Override
>         protected void onDestroy() {
>                 super.onDestroy();
>                 if (isFinishing()) {
>                         for (ImageView view : mImgViews) {
>                                 Drawable toRecycle = view.getDrawable
> ();
>                                 if (toRecycle != null) {
>                                         ((BitmapDrawable)
> toRecycle).getBitmap().recycle();
>                                 }
>                         }
>                 }
>         }
>
> After this, If the orientation change time is too long, you have to
> store the data (bitmaps and whatever else you need) with
> onRetainNonConfigurationInstance() and get them back on reinit with
> getLastNonConfigurationInstance().
>
> This has been explained by Romain Guy on his blog 
> :http://www.curious-creature.org/2009/02/16/faster-screen-orientation-...
>
> On 17 août, 15:58, Flying Coder  wrote:
>
>
>
> > This has been driving me nuts and I'm hoping someone will be able to
> > help me understand what is happening (or better yet, how to fix
> > it! ;-).
>
> > I set the background image in one of my apps to the system wallpaper
> > image using the following code:
>
> >    Drawable wp = this.getWallpaper();
> >    background = (ImageView) findViewById(R.id.background);
> >    background.setImageDrawable(wp);
>
> > This seems to work fine, but periodically, I get the out of memory
> > error shown below.  Actually, on the emulator, all I have to do is
> > repeatedly rotate the device and this error will consistently happen
> > after 10-12 rotations.  On the G1, opening and closing the keyboard
> > doesn't seem to cause this, but I'll still get the failure every once
> > in a while.
>
> > Is getWallpaper() actually making a copy of the image (I would have
> > thought I'd just get a refernece to the existing bitmap)?  Do I need
> > to do anything special to free the image?
>
> > 08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
> > allocation too large for this process.
> > 08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
> > bytes
> > 08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
> > 08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
> > with uncaught exception (group=0x4000fe70)
> > 08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
> > thread main exiting due to uncaught exception
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
> > java.lang.OutOfMemoryError: bitmap size exceeds VM budget
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
> > Method)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
> > 424)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ApplicationContext.getCurrentWallpaperLocked
> > (ApplicationContext.java:523)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ApplicationContext.peekWallpaper(ApplicationContext.java:
> > 515)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ApplicationContext.getWallpaper(ApplicationContext.java:
> > 504)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.content.ContextWrapper.getWallpaper(ContextWrapper.java:201)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at onCreate
> > (MyApp.java:247)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
> > 1123)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
> > 2231)
> > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > android.app.ActivityThread.handleLaunchActivity(Acti

[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Dianne Hackborn
The wallpaper is loaded into each application that requests it.  It is only
loaded the first time you ask for it, and the next time after it is changed
to some other image.

You are probably leaking memory.  You can use the hat tool to look at your
allocations -- search on this list, there have been a number of discussions
about it.

On Mon, Aug 17, 2009 at 9:38 AM, Flying Coder  wrote:

>
> Hi Nivek,
>Unfortunately, doing recycle on the drawable returned by
> ContextWrapper.getWallpaper() results in a run-time exception the next
> time the app is launched:  attempt to use recycled bitmap.  Though
> curiously, if I launch the app again after receiving the exeption, it
> works fine.  I.e., run time exception every other launch.
>
>At any rate, thanks for the pointer to Romain Guy's blog -- I
> wasn't aware of the onRetainNonConfigurationInstance method.  Should
> be useful in some cases.
>
> Cheers,
> Steve
>
>
> On Aug 17, 10:53 am, Nivek  wrote:
> > When you change the device orientation, you app is closed and then
> > reopened.
> >
> > Android handles bitmaps a "special" way, you HAVE to explicitly
> > recycle them as soon as you don't need them anymore... or they stay
> > allocated in memory and NEVER get freed.
> >
> > I have started to code an app which uses a set of ImageViews. To avoid
> > allocation errors on orientation changes, I had to override the
> > onDestroy() method this way :
> > /*
> >  * (non-Javadoc)
> >  *
> >  * @see android.app.Activity#onDestroy()
> >  */
> > @Override
> > protected void onDestroy() {
> > super.onDestroy();
> > if (isFinishing()) {
> > for (ImageView view : mImgViews) {
> > Drawable toRecycle = view.getDrawable
> > ();
> > if (toRecycle != null) {
> > ((BitmapDrawable)
> > toRecycle).getBitmap().recycle();
> > }
> > }
> > }
> > }
> >
> > After this, If the orientation change time is too long, you have to
> > store the data (bitmaps and whatever else you need) with
> > onRetainNonConfigurationInstance() and get them back on reinit with
> > getLastNonConfigurationInstance().
> >
> > This has been explained by Romain Guy on his blog :
> http://www.curious-creature.org/2009/02/16/faster-screen-orientation-...
> >
> > On 17 août, 15:58, Flying Coder  wrote:
> >
> >
> >
> > > This has been driving me nuts and I'm hoping someone will be able to
> > > help me understand what is happening (or better yet, how to fix
> > > it! ;-).
> >
> > > I set the background image in one of my apps to the system wallpaper
> > > image using the following code:
> >
> > >Drawable wp = this.getWallpaper();
> > >background = (ImageView) findViewById(R.id.background);
> > >background.setImageDrawable(wp);
> >
> > > This seems to work fine, but periodically, I get the out of memory
> > > error shown below.  Actually, on the emulator, all I have to do is
> > > repeatedly rotate the device and this error will consistently happen
> > > after 10-12 rotations.  On the G1, opening and closing the keyboard
> > > doesn't seem to cause this, but I'll still get the failure every once
> > > in a while.
> >
> > > Is getWallpaper() actually making a copy of the image (I would have
> > > thought I'd just get a refernece to the existing bitmap)?  Do I need
> > > to do anything special to free the image?
> >
> > > 08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
> > > allocation too large for this process.
> > > 08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
> > > bytes
> > > 08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
> > > 08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
> > > with uncaught exception (group=0x4000fe70)
> > > 08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
> > > thread main exiting due to uncaught exception
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
> > > java.lang.OutOfMemoryError: bitmap size exceeds VM budget
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597): at
> > > android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
> > > Method)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597): at
> > > android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
> > > 424)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597): at
> > > android.app.ApplicationContext.getCurrentWallpaperLocked
> > > (ApplicationContext.java:523)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597): at
> > > android.app.ApplicationContext.peekWallpaper(ApplicationContext.java:
> > > 515)
> > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597): at
> > > android.app.ApplicationContext.getWallpaper(ApplicationContext.java:
> > > 504)
> > > 08-17 08:32:38.313: ERROR

[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Flying Coder


Dianne,
   I suspect you are right, though I'm having a heck of a time
tracking it down (i.e., I don't see any leaks).  Thanks for the info
on the wallpaper!

Cheers,
Steve


On Aug 17, 12:47 pm, Dianne Hackborn  wrote:
> The wallpaper is loaded into each application that requests it.  It is only
> loaded the first time you ask for it, and the next time after it is changed
> to some other image.
>
> You are probably leaking memory.  You can use the hat tool to look at your
> allocations -- search on this list, there have been a number of discussions
> about it.
>
>
>
>
>
> On Mon, Aug 17, 2009 at 9:38 AM, Flying Coder  wrote:
>
> > Hi Nivek,
> >    Unfortunately, doing recycle on the drawable returned by
> > ContextWrapper.getWallpaper() results in a run-time exception the next
> > time the app is launched:  attempt to use recycled bitmap.  Though
> > curiously, if I launch the app again after receiving the exeption, it
> > works fine.  I.e., run time exception every other launch.
>
> >    At any rate, thanks for the pointer to Romain Guy's blog -- I
> > wasn't aware of the onRetainNonConfigurationInstance method.  Should
> > be useful in some cases.
>
> > Cheers,
> > Steve
>
> > On Aug 17, 10:53 am, Nivek  wrote:
> > > When you change the device orientation, you app is closed and then
> > > reopened.
>
> > > Android handles bitmaps a "special" way, you HAVE to explicitly
> > > recycle them as soon as you don't need them anymore... or they stay
> > > allocated in memory and NEVER get freed.
>
> > > I have started to code an app which uses a set of ImageViews. To avoid
> > > allocation errors on orientation changes, I had to override the
> > > onDestroy() method this way :
> > >         /*
> > >          * (non-Javadoc)
> > >          *
> > >          * @see android.app.Activity#onDestroy()
> > >          */
> > >         @Override
> > >         protected void onDestroy() {
> > >                 super.onDestroy();
> > >                 if (isFinishing()) {
> > >                         for (ImageView view : mImgViews) {
> > >                                 Drawable toRecycle = view.getDrawable
> > > ();
> > >                                 if (toRecycle != null) {
> > >                                         ((BitmapDrawable)
> > > toRecycle).getBitmap().recycle();
> > >                                 }
> > >                         }
> > >                 }
> > >         }
>
> > > After this, If the orientation change time is too long, you have to
> > > store the data (bitmaps and whatever else you need) with
> > > onRetainNonConfigurationInstance() and get them back on reinit with
> > > getLastNonConfigurationInstance().
>
> > > This has been explained by Romain Guy on his blog :
> >http://www.curious-creature.org/2009/02/16/faster-screen-orientation-...
>
> > > On 17 août, 15:58, Flying Coder  wrote:
>
> > > > This has been driving me nuts and I'm hoping someone will be able to
> > > > help me understand what is happening (or better yet, how to fix
> > > > it! ;-).
>
> > > > I set the background image in one of my apps to the system wallpaper
> > > > image using the following code:
>
> > > >    Drawable wp = this.getWallpaper();
> > > >    background = (ImageView) findViewById(R.id.background);
> > > >    background.setImageDrawable(wp);
>
> > > > This seems to work fine, but periodically, I get the out of memory
> > > > error shown below.  Actually, on the emulator, all I have to do is
> > > > repeatedly rotate the device and this error will consistently happen
> > > > after 10-12 rotations.  On the G1, opening and closing the keyboard
> > > > doesn't seem to cause this, but I'll still get the failure every once
> > > > in a while.
>
> > > > Is getWallpaper() actually making a copy of the image (I would have
> > > > thought I'd just get a refernece to the existing bitmap)?  Do I need
> > > > to do anything special to free the image?
>
> > > > 08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
> > > > allocation too large for this process.
> > > > 08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
> > > > bytes
> > > > 08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
> > > > 08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
> > > > with uncaught exception (group=0x4000fe70)
> > > > 08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
> > > > thread main exiting due to uncaught exception
> > > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
> > > > java.lang.OutOfMemoryError: bitmap size exceeds VM budget
> > > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > > android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
> > > > Method)
> > > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > > android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
> > > > 424)
> > > > 08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
> > > > android.app.ApplicationContext.getCurrentWa

[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Marco Nelissen

On Mon, Aug 17, 2009 at 7:53 AM, Nivek wrote:
>
> When you change the device orientation, you app is closed and then
> reopened.
>
> Android handles bitmaps a "special" way, you HAVE to explicitly
> recycle them as soon as you don't need them anymore... or they stay
> allocated in memory and NEVER get freed.

That is not true.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Nivek

I'm sorry, I've certainly misunderstood something then, but... while
coding an app dealing with bitmaps, this is what it looks like.
Reading posts and blogs about memory management and use of bitmap led
me to that conclusion, and carefully recycling bitmaps in my app
allowed me to get rid of a lot of memory allocation exceptions.

Anyway, about memory leaks on orientation changes, another blog post
from Romain Guy could be useful:
http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/

You might try this Drawable.setCallback(null) trick...


On 17 août, 22:02, Marco Nelissen  wrote:
> On Mon, Aug 17, 2009 at 7:53 AM, Nivek wrote:
>
> > When you change the device orientation, you app is closed and then
> > reopened.
>
> > Android handles bitmaps a "special" way, you HAVE to explicitly
> > recycle them as soon as you don't need them anymore... or they stay
> > allocated in memory and NEVER get freed.
>
> That is not true.
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Romain Guy

Bitmap are eventually garbage collected. From the javadoc of the
Bitmap class itself:

"This is an advanced call, and normally need
not be called, since the normal GC process will free up this memory when
there are no more references to this bitmap."

On Mon, Aug 17, 2009 at 3:14 PM, Nivek wrote:
>
> I'm sorry, I've certainly misunderstood something then, but... while
> coding an app dealing with bitmaps, this is what it looks like.
> Reading posts and blogs about memory management and use of bitmap led
> me to that conclusion, and carefully recycling bitmaps in my app
> allowed me to get rid of a lot of memory allocation exceptions.
>
> Anyway, about memory leaks on orientation changes, another blog post
> from Romain Guy could be useful:
> http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/
>
> You might try this Drawable.setCallback(null) trick...
>
>
> On 17 août, 22:02, Marco Nelissen  wrote:
>> On Mon, Aug 17, 2009 at 7:53 AM, Nivek wrote:
>>
>> > When you change the device orientation, you app is closed and then
>> > reopened.
>>
>> > Android handles bitmaps a "special" way, you HAVE to explicitly
>> > recycle them as soon as you don't need them anymore... or they stay
>> > allocated in memory and NEVER get freed.
>>
>> That is not true.
> >
>



-- 
Romain Guy
Android framework engineer
romain...@android.com

Note: please don't send private questions to me, as I don't have time
to provide private support.  All such questions should be posted on
public forums, where I and others can see and answer them

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[android-developers] Re: out of memory error & getWallpaper

2009-08-17 Thread Nivek

Ok, so I should replace my calls to ImageView.getDrawable().getBitmap
().recycle() with ImageView.setImageBitmap(null) and let the GC do his
job ?
Or is the call to ImageView.setCallback(null) enough to get rid of
both ImageView and Bitmap instances ?

I'll try to track all my calls to Bitmap.recycle() and better check
where the references to these bitmaps are located.



On 18 août, 00:51, Romain Guy  wrote:
> Bitmap are eventually garbage collected. From the javadoc of the
> Bitmap class itself:
>
> "This is an advanced call, and normally need
> not be called, since the normal GC process will free up this memory when
> there are no more references to this bitmap."
>
>
>
>
>
> On Mon, Aug 17, 2009 at 3:14 PM, Nivek wrote:
>
> > I'm sorry, I've certainly misunderstood something then, but... while
> > coding an app dealing with bitmaps, this is what it looks like.
> > Reading posts and blogs about memory management and use of bitmap led
> > me to that conclusion, and carefully recycling bitmaps in my app
> > allowed me to get rid of a lot of memory allocation exceptions.
>
> > Anyway, about memory leaks on orientation changes, another blog post
> > from Romain Guy could be useful:
> >http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-andr...
>
> > You might try this Drawable.setCallback(null) trick...
>
> > On 17 août, 22:02, Marco Nelissen  wrote:
> >> On Mon, Aug 17, 2009 at 7:53 AM, Nivek wrote:
>
> >> > When you change the device orientation, you app is closed and then
> >> > reopened.
>
> >> > Android handles bitmaps a "special" way, you HAVE to explicitly
> >> > recycle them as soon as you don't need them anymore... or they stay
> >> > allocated in memory and NEVER get freed.
>
> >> That is not true.
>
> --
> Romain Guy
> Android framework engineer
> romain...@android.com
>
> Note: please don't send private questions to me, as I don't have time
> to provide private support.  All such questions should be posted on
> public forums, where I and others can see and answer them
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---