2015-09-07 66 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)