如何固定本地数据存储区中的对象,以及与之相关的对象?

时间:2014-07-16 06:32:00

标签: android parse-platform

Parse SDK relation部分中,它提供了以下代码:

// Create the post
ParseObject myPost = new ParseObject("Post");
myPost.put("title", "I'm Hungry");
myPost.put("content", "Where should we go for lunch?");

// Create the comment
ParseObject myComment = new ParseObject("Comment");
myComment.put("content", "Let's do Sushirrito.");

// Add a relation between the Post and Comment
myComment.put("parent", myPost);

// This will save both myPost and myComment
myComment.saveInBackground();

这很棒,而且很有效。如果你固定" MyComment"到本地数据存储区,它甚至可以保存" MyPost"对象也是。似乎存在一个问题,那就是父对象(Post)没有被固定。

我有以下代码:

 ParseQuery<ParseObject> bjjHistoryCheck = ParseQuery.getQuery("bjjMatchMoves");
      // bjjHistoryCheck.fromPin("bjjMatches");
      // bjjHistoryCheck.whereEqualTo("className", "bjjMatches");
      bjjHistoryCheck.fromLocalDatastore();
      // bjjHistoryCheck.whereEqualTo("matchLoser", "Debbie Sanchez");
      bjjHistoryCheck.countInBackground(new CountCallback() {
        public void done(int count, ParseException e) {
          Log.i("parse Exception", e.getMessage());<---------
          long e1 = new DateTime().getMillis();
          Log.i("time to find user matches: ",
                          String.valueOf(e1 - s1) + " ms + count: " + String.valueOf(count));
          if (count < 1) {
            noHistoryDialog();
          } else {
            final Intent intent = new Intent(getActivity(), Dialog_History.class);
            intent.putExtra("classToShow", 1);
            startActivity(intent);
          }

这是按预期工作的,因为我固定了&#34; bjjMatchMoves&#34;,就像我的评论一样,我得到了本地数据存储中有多少移动的计数。如果我替换了移动查询,其中一个用于匹配(帖子),则无法找到任何内容。你可以看到一些注释掉的线......我试着用我能想到的每一种方式进行搜索......没什么。如果我删除了localdatastore选项,那么它会成功找到云中的记录。

带箭头的行在LogCat中显示以下内容:

  

07-15 22:58:26.018:我/解析异常(24145):试图获取一个   对象脱机,从未保存到脱机缓存中。

所以我问你们所有人......你们如何将评论和帖子都固定下来?可能吗?我现在想到这样做的唯一方法是一种肮脏的方式:在Activity firs启动时创建Match对象,然后立即将其保存在后台。一旦保存,重新检索它,然后用输入的任何信息更新它,加上记录向它记录的任何动作,但如果有一种方法来指定匹配并且移​​动被固定,那将更加清晰。

1 个答案:

答案 0 :(得分:3)

这最终成为数据存储区的问题,由于某种原因,数据存储区中存在一些空对象。一旦我重置数据存储区(清除的应用程序数据),固定就会按预期工作。我还不知道如何创建空对象(没有任何数据,甚至没有objectId)。