Android 中的全局变量有几种实现方式:
1. Application 类中定义全局变量
在 Android 中,可以创建一个自定义的 Application 类,继承自 android.app.Application。在这个类中定义全局变量,然后在 Manifest 文件中指定这个类为应用程序的入口点。示例代码如下:
```java
public class MyApplication extends Application {
public static int globalVariable = 0;
@Override
public void onCreate() {
super.onCreate();
// 在这里可以对全局变量进行初始化
}
}
```
在 AndroidManifest.xml 文件中指定 Application 类:
```xml
android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
```
2. SharedPreferences 持久化全局变量
SharedPreferences 是 Android 中用于持久化存储应用数据的一种方式。可以使用 SharedPreferences 来存储和读取全局变量的值。示例代码如下:
```java
public class GlobalVariables {
private static final String SHARED_PREFS_NAME = "global_prefs";
private static final String KEY_GLOBAL_VARIABLE = "global_variable";
public static int getGlobalVariable(Context context) {
SharedPreferences prefs = context.getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE);
return prefs.getInt(KEY_GLOBAL_VARIABLE, 0); // 如果没有找到对应的值,返回默认值 0
}
public static void setGlobalVariable(Context context, int value) {
SharedPreferences prefs = context.getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(KEY_GLOBAL_VARIABLE, value);
editor.apply();
}
}
```
在需要使用全局变量的地方,调用 `GlobalVariables.getGlobalVariable(context)` 和 `GlobalVariables.setGlobalVariable(context, value)` 即可。
3. 使用 Singleton 模式
Singleton 模式是一种常见的设计模式,可以确保一个类只有一个实例,并提供一个全局访问点。你可以创建一个 Singleton 类来存储和管理全局变量。示例代码如下:
```java
public class GlobalVariables {
private static GlobalVariables instance = null;
public int globalVariable = 0;
private GlobalVariables() {
// 私有构造函数,防止外部实例化
}
public static GlobalVariables getInstance() {
if (instance == null) {
instance = new GlobalVariables();
}
return instance;
}
}
```
在需要使用全局变量的地方,通过 `GlobalVariables.getInstance().globalVariable` 来访问和修改全局变量的值。
以上是 Android 中实现全局变量的几种常见方式,每种方式都有自己的优缺点,开发者可以根据具体需求选择合适的方式。