我有一个管理器类,它从web更新json数据,获取值......结构:
class JsonManager() {
private static JsonManager instance = null;
public static JsonManager getInstance() {
if (instance == null) {
instance = new JsonManager();
}
return instance;
}
private JSONObject data = null;
pulbic void update() {
// Download json...
String jsonResult = JsonDownloader.get();
// Create json object
data = new JSONObject(jsonResult);
Log.d("LOG", "Value in update: " + data.getBoolean("isComplete"));
}
public boolean getValue() {
boolean result = data.getBoolean("isComplete");
Log.d("LOG", "Value in getValue: " + data.getBoolean("isComplete"));
return result;
}
}
首先在服务器上" isComplete" value是false,如果我在start之后获得值,则返回false并且它没问题。但是,如果我将服务器端的值更改为true并调用update,则在调用getValue之后再次返回wtth false!但是在jsonResult中达到了真正的价值。日志:
开始:
更新中的值:false
getValue中的值:false
刷新:
更新中的值:true
getValue中的值:false
为什么呢?谢谢
答案 0 :(得分:0)
可能是因为“data”对象的实例是在update()中创建的,所以可能在getvalue()中你正在使用另一个数据对象实例。
确保您使用相同的数据对象实例访问这两个方法。