Java 如何在不同于';应用程序';和';活动';?

Java 如何在不同于';应用程序';和';活动';?,java,android,global-variables,Java,Android,Global Variables,我正在尝试在使用BLE gatt服务的Android Studio应用程序中实现全局变量。 我需要将从BLE收到的数字保存在全局变量中 所以我创建了这个类: public class Globals extends Application { private List<Float> current = new ArrayList<>(); public float getCurrent() { return current.get(cur

我正在尝试在使用BLE gatt服务的Android Studio应用程序中实现全局变量。 我需要将从BLE收到的数字保存在全局变量中

所以我创建了这个类:

public class Globals extends Application {
    private List<Float> current = new ArrayList<>();

    public float getCurrent() {
        return current.get(current.size()-1);
    }

    public void setCurrent(float someVariable) {
        this.current.add(someVariable);
    }
}

很明显,我不能在BluetoothGattCallback扩展中使用getApplicationContext(),但我可以使用什么代码?

您可以创建Globals和access的静态实例

public class Globals extends Application {
    private static Globals instance;
    private List<Float> current = new ArrayList<>();

    @Override
    public void onCreate() {
        instance = this;
        super.onCreate();
    }

    public float getCurrent() {
        return current.get(current.size()-1);
    }

    public void setCurrent(float someVariable) {
        this.current.add(someVariable);
    }

    public static Globals getInstance() {
        return instance;
    }

    public static Context getContext(){
       return instance;
    // or return instance.getApplicationContext();
   } 
}

您可以创建Globals和access的静态实例

public class Globals extends Application {
    private static Globals instance;
    private List<Float> current = new ArrayList<>();

    @Override
    public void onCreate() {
        instance = this;
        super.onCreate();
    }

    public float getCurrent() {
        return current.get(current.size()-1);
    }

    public void setCurrent(float someVariable) {
        this.current.add(someVariable);
    }

    public static Globals getInstance() {
        return instance;
    }

    public static Context getContext(){
       return instance;
    // or return instance.getApplicationContext();
   } 
}
Globals.getInstance().getCurrent();