Android - 全局变量?

nic*_*ick 0 android global-variables

我需要在我的应用程序中存储一些数据.我知道我可以这样做:

类:

public class MyApplication extends Application {

    private String someVariable;

    public String getSomeVariable() {
        return someVariable;
    }

    public void setSomeVariable(String someVariable) {
        this.someVariable = someVariable;
    }
}
Run Code Online (Sandbox Code Playgroud)

执行:

MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getSomeVariable();
Run Code Online (Sandbox Code Playgroud)

如果我参加活动,这是有效的.

但是,如果我在没有从Activity扩展的课程中,我如何访问我的数据?

在此先感谢您的帮助!

小智 5

您可以使用Singleton设计模式.然后您可以在任何地方使用它,因为它具有静态访问权限.

public class SingletonClass {
private static SingletonClass _instance = null;
private int _value = 0;

private SingletonClass() {
}

public static SingletonClass getInstance() {
    if (_instance == null)
        _instance = new SingletonClass();
    return _instance;
}

public int getValue() {
    return _value;
}

public void setValue(int value) {
    _value = value;
}
Run Code Online (Sandbox Code Playgroud)

}

然后像这样访问它:

SingletonClass.getInstance().getValue();
Run Code Online (Sandbox Code Playgroud)

注意:对于某些编程问题,这是一个很好且简单的解决方法,但是非常明智地使用它...它带来了它的问题