在每次启动时,我的应用程序都会从parse.com加载新数据,并将所有对象固定为使用应用程序,而不需要像这样的网络请求^
public void pinKids() {
ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseConstants.CLASS_KIDS);
query.whereEqualTo(ParseConstants.KEY_PARENT, currentUser);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(final List<ParseObject> kidsList, ParseException e) {
if (e == null) {
ParseObject.unpinAllInBackground(ParseConstants.LABEL_KIDS, new DeleteCallback() {
@Override
public void done(ParseException e) {
ParseObject.pinAllInBackground(ParseConstants.LABEL_KIDS, kidsList, new SaveCallback() {
@Override
public void done(ParseException e) {
Log.d("Hello", "pinKids");
}
});
}
});
}
}
});
}
我班级中的一列是一个字符串数组(它存储历史消息)。我发现我的代码不会刷新此数组,如果该数组是从其他设备更新的(同一用户在另一台设备上做了一些事情)。其余数据(其他列)刷新没有问题。但是在第一次启动时下载的字符串数组保持不变。
在parse.com仪表板中,我看到该阵列已更新。但是,在正确下载所有其他列的情况下,代码不会下载此数组。
让我说,当我在设备-1上更新此阵列时,新数据也存储在设备1和“parse.com”上。但它不会在设备-2上更新。
请帮忙!
答案 0 :(得分:0)
OK!我已经解决了。
此问题是parse.com的错误。
我创建了an issue on parse's github。 所以我发现我的问题是解析错误的一部分。
答案是:用getJSONArray(key)
替换所有对getList(key)
的来电。您可能还需要revert()/revert(key)