Public static variables and Android activity life cycle management

jsstp24n5 picture jsstp24n5 · Aug 30, 2012 · Viewed 14.9k times · Source

According to the documentation the Android OS can kill the activity at the rear of the backstack.

So, say for example I have an app and open the Main Activity (let's call it Activity A). In this public activity class I declare and initialize a public static variable (let's call it "foo"). In Activity A's onCreate() method I then change the value of "foo." From Activity A the user starts another activity within my app called Activity B. Variable "foo" is used in Activity B. Activity B is then paused after the user navigates to some other activities in other apps. Eventually, after a memory shortage occurs, Activity A then Activity B can be killed. After the user navigates back to my app it restarts (actually "recreates") activity B.

What happens:

  1. Will variable "foo" at this point have the value that was set to it when Activity A's onCreate() method ran?

  2. Variable "foo" does not exist ?

  3. Variable "foo" exists and but is now the initialized value and not the value set in Activity A's onCreate() method ?

Answer

nandeesh picture nandeesh · Aug 30, 2012

If the process is killed then all static variables will be reinitialized to their default values.

So whatever value you have set in Activity A will not persist