7

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

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

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

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

4

7 回答 7

6

嗯,这不是一个坏主意。您可以在 Android 中使用这种类型的类。但这里有一个小的修正。您可以使该类扩展 Application 类并使用它来存储数据,而不是维护一个包含静态数据的类。

这是一个例子,

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,这是执行此操作的合法方法。

于 2012-08-28T11:12:27.853 回答
5

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

看看这个Preference Demo

于 2012-08-28T11:10:09.117 回答
2

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

见链接:

安卓全局变量

于 2012-08-28T11:11:09.517 回答
1

使用 SharedPreference 来存储标志和变量

http://developer.android.com/reference/android/content/SharedPreferences.html

对于全局变量:

使用 Android Application 类会更好。它旨在存储全局应用程序状态

于 2012-08-28T11:11:18.673 回答
1

我建议“从不”使用全局变量....

当您访问另一个活动时,您可以使用Intent.putExtras(Name_parameter, "value_parameter")

并接收值:Bundle b = getIntent().getExtras();其中 b 具有所有参数

干杯,

于 2012-08-28T11:15:42.783 回答
0

好 !据我所知,这可能取决于您项目的规模!如果它相对较大,最好使用单独的类来存储静态数据(不仅仅是一个类,您可能需要保留两个或更多类,具体取决于所使用的静态数据的类型)

于 2012-08-28T11:13:15.757 回答
0

我建议你应该用 Singleton 类封装你的全局类。在单例设计模式中查看更多信息

于 2012-08-28T11:17:47.630 回答