如何使函数等待parse.com的saveInBackground结果? (在android中)

时间:2015-03-02 06:13:55

标签: android eclipse parse-platform

我有一个代码可以将数据保存到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;
}

1 个答案:

答案 0 :(得分:2)

  

它不会等待saveInBackground完成,所以它总是返回   假

因为saveInBackground在后​​台线程中运行并提供回调方法以在后台任务完成时通知UI线程。

因此,使用done方法执行下一个任务。

  

如何使函数等待parse.com的saveInBackground结果?

使用在主线程上运行的ParseObject.saveParseObject.saveAll并等待选项未完成(可能冻结用户界面或显示ANR对话框