@Sudha

Hey I have been through the same. I frankly don't believe in what
these guys say. No offense here guys but I have experimented myself.
Basically the GC is not good.

I was using xml for game menus. My game was having this problem for a
long time. Finally I removed all the @drawable/<picname> from the xml
layout files. I used many background images, image views for buttons
with images that change on touch etc..

I loaded all of them using BitmapFactory.decodeResource and then
cleaned up using bitmap.recycle() when needed, finally game never
crashed anymore. It was like I was coding C++ again :) I know its
tough to change everything, but it was worth it.

I did the cleanup properly too by handling the activity lifecycle. and
even set everything to null and called System.gc when pressing the
exit button.

One more thing, when I clicked quit in my app. I set the contentview
to an empty layout and then nulled everything and called gc and
recycles bitmaps. Finally all crashes disappeared. Otherwise every
second time I start my game it would crash.

Hope this helped..


On Apr 28, 6:31 pm, Jean-Baptiste Queru <j...@android.com> wrote:
> Write your code such that it either cleans up those static variables
> or re-uses them if they've already been initialized.
>
> There are going to be many combinations of the lifecycle of your
> activity that will be similar to what you're seeing (e.g. your app
> going in the background, the phone getting locked, the orientation
> changing), and you'll need to deal with the problem at its root.
> You're attacking a symptom without attacking the root cause.
>
> JBQ
>
>
>
> On Tue, Apr 28, 2009 at 6:24 AM, Sudha <sudhaker...@gmail.com> wrote:
>
> > I could leave the process to OS to kill but if I want to launch it
> > again in no time i get exceptions as the memory allocated previously
> > is not being erased.
>
> > I am handling all the activities in the wrapper correctly but the
> > problem seems to be:
>
> > I have most of the references created and assigned to static variables
>
> > I mean all the instances of the objects are being referenced by static
> > variables, so might be all the variables are still hiding in the
> > memory even after the app has exited.
>
> > is there any other way to kill the process when finish() is called...?
>
> > On Apr 28, 6:10 pm, Jean-Baptiste Queru <j...@android.com> wrote:
> >> This is not the way Android works.
>
> >> JBQ
>
> >> On Tue, Apr 28, 2009 at 5:56 AM, Sudha <sudhaker...@gmail.com> wrote:
>
> >> > So can you please just brief me on where to concentrate and what all
> >> > should be done while closing an app so that it is entirely erased from
> >> > the memory when exited...?
>
> >> > On Apr 28, 5:51 pm, Jean-Baptiste Queru <j...@android.com> wrote:
> >> >> finish() doesn't close your application, is just closes your activity.
> >> >> The Appliction object itself stays behind, as well, as the entire
> >> >> process, as long as there's memory available to keep them around, so
> >> >> that re-launching your app is faster then next time around.
>
> >> >> JBQ
>
> >> >> On Tue, Apr 28, 2009 at 5:40 AM, Sudha <sudhaker...@gmail.com> wrote:
>
> >> >> > Hi,
>
> >> >> > I have been developing a game on Android and wrote a wrapper for J2ME
> >> >> > classes,
>
> >> >> > When notifyDestroyed() is called in my ME program and calling finish()
> >> >> > but the application doesn't close correctly.
>
> >> >> > The App goes to background and when launched again it shows an error
> >> >> > message and presents an option to "force close" the App, if i force
> >> >> > close it and launch again, the app launches fine but again the same
> >> >> > has to be repeated upon every launch..
>
> >> >> > Can you please explain why the App is not being erased from memory
> >> >> > when finish() is called.\
>
> >> >> > when i check the log i found no exceptions when closing but when
> >> >> > launched again it throws a null pointer exception.
>
> >> >> > for now to work around I placed "System.exit(0)" after calling finish
> >> >> > () so that the app is exited abruptly, but am waiting for a valid
> >> >> > answer on whats going on behind...?
>
> >> >> --
> >> >> Jean-Baptiste M. "JBQ" Queru
> >> >> Android Engineer, Google.
>
> >> >> Questions sent directly to me that have no reason for being private
> >> >> will likely get ignored or forwarded to a public forum with no further
> >> >> warning.
>
> >> --
> >> Jean-Baptiste M. "JBQ" Queru
> >> Android Engineer, Google.
>
> >> Questions sent directly to me that have no reason for being private
> >> will likely get ignored or forwarded to a public forum with no further
> >> warning.
>
> --
> Jean-Baptiste M. "JBQ" Queru
> Android Engineer, Google.
>
> Questions sent directly to me that have no reason for being private
> will likely get ignored or forwarded to a public forum with no further
> warning.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to