java Android单例
我对安卓 studio中创建的应用程序中的singleton有一个问题
Class MyApplication is created :
public class MyApplication extends Application { // code - freeCodeCamp.org
private static MyApplication singleton;
private List<Location> myLocations;
public List<Location> getMyLocations() {
return myLocations;
}
public void setMyLocations(List<Location> myLocations) {
this.myLocations = myLocations;
}
public MyApplication getInstance(){
return singleton;
}
public void OnCreate() {
super.onCreate();
singleton = this;
myLocations = new ArrayList<>();
}
}
当我在主活动中调用MyApplication时,它会给出一个错误,具体为null:
MyApplication myApplication = (MyApplication)getApplicationContext();
savedLocations = myApplication.getMyLocations();
savedLocations.add(currentLocation);
currentLocation具有有效的位置值。 有什么提示吗?谢谢
# 1 楼答案
您必须像Ernest所说的那样使用@Override public void onCreate(),并编写此代码以获取应用程序实例并使用它
# 2 楼答案
myLocations
为空,因为您拼错了onCreate
方法签名,并且它实际上从未被调用您应该更改此选项:
为此:
这是你问题的解决办法,但老实说,你不应该那样做。请阅读应用程序架构,了解如何定义数据的范围。在android应用程序类中使用单例数组在99.99%的情况下是错误的答案