Как создать глобальную переменную в android?

В моем приложении для Android мне нужно место для размещения идентификатора элемента переменной. Проблема в том, что она поступает из онлайн-API, и мне нужно найти способ ее сохранить/получить

Я попытался поместить его в пользовательский класс, но проблема в том, что он проиграет, если я убью действие, я также знаю, что есть способ расширить приложение.

Итак, я хотел бы знать, что является лучшим способом хранения глобальной переменной?

Мне нужно внедрить:

  • Сохранить переменную onSaveState
  • Сохранить его на sharepref
  • Сохранить вручную
  • Получить его вручную

Спасибо

Update: Спасибо за ответ. Если у меня всего 3 переменные (простые данные, например, логические, фразы), и мне нужно это после перезапуска приложения, я должен просто использовать share pref для его сохранения? В чем его недостаток? например Будет ли это вредно для производительности? спасибо

Ответ 1

Вы можете создать глобальную переменную в android, объявив ее в классе, который расширяет класс Application.

Что-то вроде этого.

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

Это значение сохраняется до тех пор, пока ваше приложение не будет уничтожено. Если вы хотите сохранить ваши значения, сохраните даже после уничтожения экземпляра приложения то вы можете использовать SharedPreferences лучший способ сделать это.

Узнайте о SharedPrefernces отсюда: http://developer.android.com/reference/android/content/SharedPreferences.html

Ответ 2

  • Если вам нужна глобальная переменная, которая разделяется между несколькими действиями и сохраняется их изменения в жизненном цикле, но в остальном она не сохраняется и не сможет перезапустить перезапуск приложения, метод, предложенный в первом ответе (расширение Application и его размещение там) нормально.
  • Если вам нужна постоянная глобальная настройка, которая также должна выдержать перезапуск приложения, вам следует использовать один из других предложенных методов. SharedPreferences, вероятно, самый простой в использовании.

См. также этот вопрос: Каков наилучший способ обмена данными между действиями?

Ответ 3

Вы можете сохранить его в SharedPreferences и создать класс sharedpreferenceHelper для извлечения/сохранения.

Ответ 4

Всегда лучше хранить значения, которые вы хотите использовать несколько раз одним из следующих способов: -

  • Общие настройки
  • Одиночные классы
  • записать его в файл
  • База данных SQLite
  • Сохранить на веб-сервере