我有一个代码可以将数据保存到parse.com,问题是,它不等待saveInBackground
完成,所以它总是返回false
(意味着没有错误),即使发现了错误。请帮忙。感谢
Boolean result;
public boolean insertToParseAndDB(String payType, int creditsLeft){
result = false;
ParseObject AudioRec = new ParseObject("Credit");
AudioRec.put("payType", payType);
AudioRec.put("creditsLeft", creditsLeft);
AudioRec.put("isActive", true);
AudioRec.put("subsType", 2);
AudioRec.put("UserId", ParseUser.getCurrentUser());
{
AudioRec.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException ex) {
if (ex == null){
result = true;
}
else{
result = false;
Log.e("",ex.getLocalizedMessage());
}
}
});
}
return result;
}
答案 0 :(得分:2)
它不会等待saveInBackground完成,所以它总是返回 假
因为saveInBackground
在后台线程中运行并提供回调方法以在后台任务完成时通知UI线程。
因此,使用done
方法执行下一个任务。
如何使函数等待parse.com的saveInBackground结果?
使用在主线程上运行的ParseObject.save或ParseObject.saveAll并等待选项未完成(可能冻结用户界面或显示ANR对话框)