2015-09-07 67 views
1

在每一个从parse.com和销的所有对象启动我的应用程序加载的新数据使用的应用程序没有这样的^Android。 Parse.com:数组没有更新

public void pinKids() { 
    ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseConstants.CLASS_KIDS); 
    query.whereEqualTo(ParseConstants.KEY_PARENT, currentUser); 
    query.findInBackground(new FindCallback<ParseObject>() { 
     public void done(final List<ParseObject> kidsList, ParseException e) { 
      if (e == null) { 

       ParseObject.unpinAllInBackground(ParseConstants.LABEL_KIDS, new DeleteCallback() { 
        @Override 
        public void done(ParseException e) { 
         ParseObject.pinAllInBackground(ParseConstants.LABEL_KIDS, kidsList, new SaveCallback() { 
          @Override 
          public void done(ParseException e) { 

           Log.d("Hello", "pinKids"); 

          } 
         }); 

        } 
       }); 

      } 
     } 
    }); 
} 

其中一列在我的课是网络请求一串字符串(它存储历史消息)。我发现如果该阵列已从其他设备更新(同一用户在另一设备上做了某些操作),我的代码不会刷新此阵列。其余的数据(其他列)刷新没有问题。但是字符串数组保持不变,因为它是在第一次启动时下载的。

在parse.com仪表板中,我看到该数组已更新。但是,代码不下载此数组,而所有其他列正确下载。

让我说,当我在device-1上更新这个数组时,新的数据也存储在device-1和“parse.com”上。但它不会在设备2上更新。

请帮忙!

+0

但是您能更新Device1上的更改吗? – VVB

+0

是的。新项目添加到数组的末尾。这适用于固定在设备-1上的本地数据存储上的对象并解析类eather。 但是,当我从设备-2上的解析类到网络这个数组我不能看到从设备1添加的项目。 如果我从任何设备中删除我的应用程序并重新安装它。在第一次启动时,我会在第一次查询对象时获得正确的最新数据。但是,然后阵列不会从parse-cloud更新数据。 –

+0

你在控制台上打印过吗? – VVB

回答

0

好的!我解决了它。

此问题是parse.com的一个错误。我已创建an issue on parse's github。 所以我发现我的问题是解析错误的一部分。

所以答案是:用getList(key)替换所有呼叫getJSONArray(key)。您可能还需要revert()/revert(key)