使用类在Java中存储静态数据?

时间:2012-08-28 11:08:37

标签: java android

创建一个单独的类并将其用作仅包含静态数据变量的存储是不是一个坏主意?

我目前正在为Android开发一个应用程序,但这个问题对于Java来说是一般的。

在android的情况下,我正在跨越活动,我想在一个单独的类中存储一些全局/静态标志/变量,并且能够从我想要的任何活动中访问它们。

PS。仅在会话时间内需要数据。

7 个答案:

答案 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();

Taken from here..

说到SharedPreference,只有在值必须存储很长时间时才应考虑使用它们。如果没有,你应该使用Application类并使用setter和getter这是合法的方法。

答案 1 :(得分:5)

您可以使用SharedPreference存储标志和变量。

看看这个Preference Demo

答案 2 :(得分:2)

我建议你使用Application类,而不是创建一个静态类来保存全局变量。

见链接:

Android global variable

答案 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