如何在应用程序重启之间维护parse.com自动用户?

时间:2015-03-24 07:22:56

标签: android parse-platform

以下是该方案:

Todo todo = new Todo();
todo.setUuidString();
todo.setTitle("test");
todo.pinInBackground();
  • 第一次正常运作
  • 现在关闭应用程序(不只是将其发送到后台,使用“最近使用的应用程序”按钮关闭它并将其从屏幕上滑下来)
  • 再次运行该应用。这里完全相同的代码抛出了这个异常:

无法为具有空ID

的用户设置setReadAccess

即使一个解决方法可能是在关闭应用程序之前的某个时刻注册自动用户,这几乎不是应该脱机工作的自动用户点,但无法保证应用程序之前不会关闭我们在注册过程中。

保存用户以获取ID也不是一个选项:不仅是在线操作,您不应该在用户上调用save()。根据文件,它应该是注册()。

即使在创建其他对象之前固定当前用户也无法解决问题。

1 个答案:

答案 0 :(得分:1)

不确定您是否为此找到了解决方案,但我认为这应该有效:在应用启动时,启用自动用户创建时:

    public class MyApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();

            // ...

            if (ParseUser.getCurrentUser()==null) {
                ParseUser.enableAutomaticUser();
                ParseUser.getCurrentUser().saveInBackground();
            }

            // ...
        }
    }

这将(a)确保您始终拥有当前用户,以及(b)如果是匿名用户,用户将通过应用程序重新启动来保持。

注1:saveInBackground()实际上并未将用户保存到服务器,因为用户没有用户名/密码,但会保留用户。 注2:我还没有完全测试过,但它应该可以解决你的问题。