在我的Android应用程序中,我需要一个放置变量成员id的地方。 问题是,它来自在线API,我需要找到一种存储/检索它的方法
我试图把它放在一个自定义类中,但问题是,如果我杀死了活动它就会丢失,我也知道有一种方法可以扩展应用程序。
所以我想知道存储全局变量的最佳方法是什么?
我必须施展:
由于
更新 谢谢你的答复。如果我只有3个变量(简单数据,例如布尔值,短语),并且在重新启动应用程序后需要它,我应该只使用share pref来存储它吗?有什么缺点呢?例如它会对性能有害吗?感谢
答案 0 :(得分:26)
您可以通过在扩展Application
类的类中声明它们来在android中创建全局变量。
像这样。
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();
...
}
}
这将保留该值,直到您的应用程序未被销毁。如果要在应用程序实例销毁后保留值,请保存
那么你可以使用SharedPreferences
最好的方法来做到这一点。
从此处了解SharedPrefernces
:http://developer.android.com/reference/android/content/SharedPreferences.html
答案 1 :(得分:6)
Application
扩展并放在那里就可以了。SharedPreferences
可能是最容易使用的。另请参阅此Stack Overflow问题:What's the best way to share data between activities?
答案 2 :(得分:2)
您可以将其存储在SharedPreferences中,并创建一个sharedpreferenceHelper类来检索/存储它。
答案 3 :(得分:1)
最好通过以下方式之一多次存储您想要使用的值: -