在我的 android 应用程序中,我需要一个地方来放置变量成员 id 。
问题是,它是从在线 API 获取的,我需要找到一种方法来存储/检索它
我试过将它放在一个自定义类中,但问题是,如果我终止 Activity 它就会丢失,我也知道有一种方法可以扩展应用程序。
所以我想知道存储全局变量的最佳方式是什么?
我必须实现:
- 在 onSaveState 上保存变量
- 将其保存在 sharefref 上
- 手动保存
- 手动检索
谢谢
更新:
谢谢您的回复。如果我只有 3 个变量(简单数据,例如一个 boolean ,一个 phrase ),并且我在应用程序重启后需要它,我应该简单地使用 share pref 来存储它吗?它的缺点是什么?例如会对性能有害吗?谢谢
您可以通过在扩展 Application
类的类中声明它们来在 android 中创建全局变量。
像这样。
class MyAppApplication extends Application {
private String mGlobalVarValue;
public String getGlobalVarValue() {
return mGlobalVarValue;
}
public void setGlobalVarValue(String str) {
mGlobalVarValue = str;
}
}
主 Activity .java
class MainActivity extends Activity {
@Override
public void onCreate(Bundle b){
...
MyAppApplication mApp = ((MyAppApplication)getApplicationContext());
String globalVarValue = mApp.getGlobalVarValue();
...
}
}
更新
在您的应用程序未被销毁之前,此值将一直保留。如果你想在你的应用程序实例销毁后保存你的值
那么你可以使用 SharedPreferences
最好的方法来做到这一点。
从这里了解 SharedPrefernces
:http://developer.android.com/reference/android/content/SharedPreferences.html