📜  android 全局变量 (1)

📅  最后修改于: 2023-12-03 15:13:21.538000             🧑  作者: Mango

Android全局变量

在Android编程中,全局变量是指在整个应用程序中都可以访问的变量。它们可以在应用程序的任何地方使用,无需重复定义。

1. 定义全局变量的方法

在Android中定义全局变量有以下两种方法:

1.1 在Application中定义

Android提供了一个名为Application的类,它是全局单例对象,可以在它里面定义全局变量,可以是基本类型,也可以是对象类型。实现方式如下:

public class MyApplication extends Application {
    private static MyApplication instance;
    private String globalString;

    public static MyApplication getInstance() {
        return instance;
    }

    public String getGlobalString() {
        return globalString;
    }

    public void setGlobalString(String globalString) {
        this.globalString = globalString;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        instance = this;
    }
}

上述代码中,我们创建了一个名为MyApplication的类,这个类继承了Application类,并创建了一个静态的全局单例对象instance,以供程序中任何地方访问。另外还定义了一个String类型的全局变量globalString,通过setGlobalString和getGlobalString方法来获取和设置这个变量的值。最后,在onCreate方法中初始化了全局单例对象instance。

需要注意的是,在AndroidManifest.xml中注册MyApplication:

<application
        android:name=".MyApplication"
        ...
 </application>
1.2 在静态类中定义

我们通常可以在一个静态类中定义全局变量,这样其他类也可以访问它。静态类主要有两个好处:一是我们不需要创建它的实例就可以调用它的方法和访问它的成员,二是它的生命周期与整个应用程序的生命周期相同。

public class Globals {
    public static String globalString = "Hello World";
}

上述的代码就定义了一个名为Globals的静态类,并在其中定义了一个静态的String类型变量globalString,可以在程序的任何地方通过Globals.globalString的方式来访问它。

2. 使用全局变量

要使用在Application中定义的全局变量,我们只需要调用MyApplication.getInstance()方法即可,不需要创建它的实例。

String globalString = MyApplication.getInstance().getGlobalString();
MyApplication.getInstance().setGlobalString("New value");

而要使用在静态类中定义的全局变量,只需直接使用静态类名加变量名即可。

String globalString = Globals.globalString;
Globals.globalString = "New value";

注意:定义全局变量会增加内存消耗,因此需要谨慎使用。如果全局变量的值无法确定,最好不要将它们设为全局变量。