我在库中使用单例来保存数据,但是有时发现当用户获得单例变量时,用户返回null。还有其他方法吗?
我目前正在使用单例模式。
public class Factory {
private static Factory sInstance = null;
private final Config mConfig;
public Factory(Config config) {
mConfig = config;
}
public static Factory getInstance() {
return sInstance;
}
}
在线的某些用户发现以下调用将返回null。
Factory.getInstance().mConfig
答案 0 :(得分:1)
您可以扩展android.app.Application基类,并添加成员变量,如下所示:
public class MyApplication extends Application {
private String someVariable;
public String getSomeVariable() {
return someVariable;
}
public void setSomeVariable(String someVariable) {
this.someVariable = someVariable;
}
}
在您的android清单中,您必须声明实现android.app.Application的类(将android:name=".MyApplication"
属性添加到现有应用程序标签中):
<application
android:name=".MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name">
然后在您的活动中,可以像这样获取并设置变量:
// set
((MyApplication) this.getApplication()).setSomeVariable("foo");
// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();