在下面调用代码几次(5-10次)后,SaveCallback的done()方法不会触发,整个应用程序似乎卡住了。看起来这个请求会破坏请求队列,所有进一步的查询也不会触发它们的回调。回调和日志中没有错误。 “在节省之前” - 显示在日志中,而“已保存” - 则没有。
我是否需要更改解析定价合约,或以某种方式更改我的代码?
Log.d("MESSAGE OBJECT", " BEFORE SAVING");
messageParseObject.saveInBackground(new SaveCallback() {
@Override
public void done(final ParseException e) {
Log.d("MESSAGE OBJECT", " SAVED");
if (e != null){
completitionCallback.error(e);
return;
}
chatObject.put(ModelConstants.LAST_MESSAGE_KEY, messageParseObject);
chatObject.getRelation(ModelConstants.MESSAGES_KEY).add(messageParseObject);
chatObject.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
Log.d("CHAT OBJECT", " SAVED");
if (e == null)
completitionCallback.success();
else
completitionCallback.error(e);
}
});
}
});
答案 0 :(得分:11)
面对这一点,真让我疯狂。这是我发现的。如果已经在Parse.com中创建了Class,即使存在小的差异,saveInBackground和saveEventually也会失败而没有任何错误。
最好的办法,如果发生这种情况,请删除Parse.com中创建的类,并让android SDK在第一次调用时自动调用它。
至少那对我有用。