How to create a global variable in android?

android, class, global-variables, java, variables

Solution

You can create the global variable in android by declaring them in the class which extend the `Application` class.

Something like this.

class MyAppApplication extends Application {

    private String mGlobalVarValue;

    public String getGlobalVarValue() {
        return mGlobalVarValue;
    }

    public void setGlobalVarValue(String str) {
        mGlobalVarValue = str;
    }
}

MainActivity.java

class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle b){
        ...
        MyAppApplication mApp = ((MyAppApplication)getApplicationContext());
        String globalVarValue = mApp.getGlobalVarValue();
        ...
    }
}

Update

This hold the value until your application is not destroyed. If you want to keep your values save even after your application instance destroy then you can use the `SharedPreferences` best way to do this.

Learn about the `SharedPrefernces` from here : http://developer.android.com/reference/android/content/SharedPreferences.html

Problem

In my android application I need a place for putting the variable member id . The problem is , it is getting from the online API and I need to find a way to store / retrieve it I have tried to put it in a custom class , but the problem is , it will lose if I kill the activity, I have also know that there is a way to extends the application. So I would like to know what is the best way to store global variable? I have to implment: - Save the variable on onSaveState - Save it on sharepref - Save it manually - Retrieve it manually Thanks Update: Thanks for reply. If I have just 3 variable (simple data e.g. a boolean , a phrase ), and I need it after app restart , should I simply use share pref to store it? What is the drawback of it? e.g. Will it harmful to the performance? thanks

Original source

Related problems