Parseuser保存在后台,当抛出异常时仍然保存到它的本地存储

时间:2015-07-29 16:47:50

标签: java android email parse-platform

我想允许用户更新他们的电子邮件,当他们正确输入所有内容但是当他们没有发生奇怪的事情时,它可以正常工作

因此,对于此示例(我正在测试的那个),当前用户电子邮件为email@gmail.com,他们希望将其替换为h作为其电子邮件。

这是更新用户电子邮件的代码

// get current user
currentUser = ParseUser.getCurrentUser();

// get user input (shortened to show result)
final String email = "h";

// reset user email
currentUser.setUsername(email);
currentUser.setEmail(email);

// save progress
currentUser.saveInBackground(new SaveCallback()
{
    @Override
    public void done(ParseException e)
    {
        if (null == e)
        {
            // success
            // tell user of success
            Toast.makeText(getActivity(), "new email is " + email,
                          Toast.LENGTH_SHORT).show();

            // restart activity to update information
            restartActivity();
        }
        else
        {   
            // update failed
            // look at the ParseException to see what happened.
            errorMessageDialog("Oops!", e.getMessage());
        }
    }
});

所以显然会抛出一个解析异常,它将是一个有效的电子邮件地址,当我检查数据库时就是这种情况。任何行都没有更新任何内容;但是,如果我稍后检查当前的电子邮件,则会发生意外情况

// get current user
currentUser = ParseUser.getCurrentUser();

// get username
currentUser.getUsername();

// get email
currentUser.getEmail();

当我运行该代码时,它表示我的电子邮件和用户名为h,但如果我检查数据库,它仍然是example@gmail.com

即使从数据库中抛出异常,解析仍然会更新它的本地缓存?我不知道问题是什么saveInBackground(new SaveCallback()是错误的使用方法?

0 个答案:

没有答案