0

I read this Article on StackOverflow. According to this, static variables will be erased, if

  1. the class is unloaded
  2. the JVM shuts down
  3. the process dies

But how to destroy / to kill my application (application process) and so to erase all static variables programmatically from my application?!

Thank you,

Mur

UPD

These static variables will be filled by reading some data from server. Here is a test workflow:

  1. I start application -> static variables will be filled
  2. I go to home activity pressing back button -> finish() will be called
  3. I turn off internet connection (I'm sure there is no connection)
  4. Then I start application againg
  5. Static variables are still filled

Some Ideas?

Is there possibility to close all activities of an aplication? Will be application 'closed' in that case?

Ps. Yes, I know, it's not the best way to use static variables, but i'm not the the author of that application, I'm just fixing bugs and put some new features to it.

Community
  • 1
  • 1
Tima
  • 12,765
  • 23
  • 82
  • 125

2 Answers2

0

How about setting the static variable to null?

Zsombor Erdődy-Nagy
  • 16,864
  • 16
  • 76
  • 101
  • i tried to do that, but they are (static variables) still there until i don't kill application process in ddms – Tima Oct 20 '10 at 09:48
  • I'm sure that there's a way to manually call the garbage collector in this case. Never tried to do it tho, but the solution's got to be somewhere there. – Zsombor Erdődy-Nagy Oct 20 '10 at 10:22
0

You question isn't all clear, so I'll give you two options:

A
If you want to terminate your application programmatically, you can call finish() anywhere from within your code.

B
If you simply want to kill your application "manually" on your device, you to the following:

  • Click Menu
  • Click Settings
  • Click Applications
  • Click Manage applications
  • Find your app in the list, select it and click Force stop

Edit:
I guess there also is a third option, but this might have to be done together with calling finish() to be sure it happens:

In your activity you could also override the onDestroy() method. Inside your implementation of onDestroy() you can do any clean-up you need, such as resetting your static variables (e.g. to null).

Julian
  • 20,008
  • 17
  • 77
  • 108
  • yes, also thought about that ... that's not nice, but that's at least a solution – Tima Oct 20 '10 at 11:41
  • @Mur: the *intention* of `onDestroy()` is that you should use this as a place to clean up when your application closes, such as clearing variables, references etc. This is according to the Activity Lifecycle, so as such it doesn't get much nicer than this. An also, what makes this "not nice" isn't the use of `onDestroy()`, but rather the weird use of static variables in your app. So I suggest either going for this or see if you can re-design your app ;) – Julian Oct 20 '10 at 11:52
  • application will be re-designed but not now. now it must work and there is no time for experiments :( – Tima Oct 20 '10 at 12:29