아래 코드를 여러 번 (5-10 회) 호출하면 SaveCallback의 done() 메소드가 실행되지 않고 전체 응용 프로그램이 멈춘 것 같습니다. 이 요청은 요청 큐가 유실되었으며 이후의 모든 쿼리는 콜백을 발생시키지 않습니다. 콜백 및 로그에 오류가 없습니다. "BEFORE SAVING"- 로그에 표시되고 "SAVED"는 표시되지 않았습니다.saveInBackground 콜백이 작동하지 않습니다.
구문 분석 가격 계약을 변경하거나 코드를 어떻게 변경해야합니까?
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);
}
});
}
});
messageParseObject 란 무엇입니까? 추신. 일반적으로 다른 하나의 내부에 'saveInBackground'를 호출하는 것은 일반적인 것이 아닙니다. 이것이 문제의 원인 일 수 있습니다. –
@VladimirLichonos messageParseObject는 ParseObject 유형이며 메시지 작성자에 대한 포인터와 포인터를가집니다. 처음에는 _saveInBackground_에서 채팅의 메시지를 저장하고, 다음에 채팅 객체를 업데이트합니다 (관계에 메시지 추가). 먼저 메시지를 저장해야하며 저장 한 후에는 chatObject를 업데이트합니다. – PaulKh