创建一个单独的类并将其用作仅包含静态数据变量的存储是不是一个坏主意?
我目前正在为Android开发一个应用程序,但这个问题对于Java来说是一般的。
在android的情况下,我正在跨越活动,我想在一个单独的类中存储一些全局/静态标志/变量,并且能够从我想要的任何活动中访问它们。
PS。仅在会话时间内需要数据。
答案 0 :(得分:6)
嗯,这不是一个坏主意。您可以在Android中使用这种类型的类。但这里有一个小小的修正。您可以使该类扩展Application类并使用它来存储数据,而不是维护一个包含静态Data的类。
这是一个例子,
public class HelloApplication extends Application {
private int globalVariable=1;
public int getGlobalVariable() {
return globalVariable;
}
public void setGlobalVariable(int globalVariable) {
this.globalVariable = globalVariable;
}
@Override
public void onCreate() {
//reinitialize variable
}
}
在您的活动中,执行此操作,
(HelloApplication)getApplication()).setGlobalVariable(10);
int valiable=((HelloApplication)getApplication()).getGlobalVariable();
说到SharedPreference,只有在值必须存储很长时间时才应考虑使用它们。如果没有,你应该使用Application类并使用setter和getter这是合法的方法。
答案 1 :(得分:5)
您可以使用SharedPreference存储标志和变量。
看看这个Preference Demo。
答案 2 :(得分:2)
答案 3 :(得分:1)
使用SharedPreference存储标志和变量
http://developer.android.com/reference/android/content/SharedPreferences.html
对于全局变量:
最好使用Android Application类。它旨在存储全局应用程序状态
答案 4 :(得分:1)
我建议"永远"使用全局变量......
当您访问其他活动时,您可以使用Intent.putExtras(Name_parameter, "value_parameter")
并重新接收值:Bundle b = getIntent().getExtras();
其中b包含所有参数
欢呼声,
答案 5 :(得分:0)
答案 6 :(得分:0)
我建议您使用Singleton类封装全局类。更多信息请访问 Singleton Design Pattern