2013-04-03 22 views
0

我想將新的ParseObjectused to store data on Parse)保存到服務器。這裏是我的代碼:上傳列表到服務器

private List<String> groupFreindsName = new ArrayList<String>(); 
if (groupFreindsName.size() > 0) { 
    Log.d("group", "query success"); 
    final ParseObject saleObj = new ParseObject("all"); 
    saleObj.put("type", "g"); 
    saleObj.addAll("groupFreindsName", groupFreindsName); 
    saleObj.put("ppp", "ppp"); 
    saleObj.saveInBackground(); 
} 

但它不會將它保存到服務器;當我調試它時,我發現它進入了這個方法並進入了saveInBackground()方法。但是,我看不到服務器上的對象。

如果我刪除行:

saleObj.addAll("groupFreindsName", groupFreindsName); 

它成功上傳的對象。

此外,在這兩個時間groupFreindsName列表不是空的,幷包含字符串 在兩次我沒有得到一個例外。

這裏是logcat的:

04-03 20:32:27.723: D/dalvikvm(1249): GC_FOR_ALLOC freed 1624K, 12% free 28407K/32036K, paused 118ms, total 131ms 
04-03 20:32:29.153: I/Choreographer(1249): Skipped 267 frames! The application may be doing too much work on its main thread. 
04-03 20:32:30.693: I/Choreographer(1249): Skipped 36 frames! The application may be doing too much work on its main thread. 
04-03 20:32:32.893: D/InputEventConsistencyVerifier(1249): KeyEvent: ACTION_UP but key was not down. 
04-03 20:32:32.893: D/InputEventConsistencyVerifier(1249): in android.widget.EditText{4121a9a0 VFED..CL .F....I. 0,493-425,538 #7f0800a5 app:id/descriptionTextGroup} 
04-03 20:32:32.893: D/InputEventConsistencyVerifier(1249): 0: sent at 973006000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_G, scanCode=34, metaState=0, flags=0x8, repeatCount=0, eventTime=973006, downTime=972697, deviceId=0, source=0x101 } 
04-03 20:32:32.893: D/InputEventConsistencyVerifier(1249): -- recent events -- 
04-03 20:32:32.893: D/InputEventConsistencyVerifier(1249): 1: sent at 972697535000, MotionEvent { action=ACTION_UP, id[0]=0, x[0]=139.0, y[0]=26.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=972697, downTime=972661, deviceId=0, source=0x1002 } 
04-03 20:32:32.893: D/InputEventConsistencyVerifier(1249): 2: sent at 972661805000, MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=139.0, y[0]=26.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=972661, downTime=972661, deviceId=0, source=0x1002 } 
04-03 20:32:35.394: I/Choreographer(1249): Skipped 40 frames! The application may be doing too much work on its main thread. 
04-03 20:32:35.633: I/Choreographer(1249): Skipped 33 frames! The application may be doing too much work on its main thread. 
04-03 20:32:36.663: I/Choreographer(1249): Skipped 67 frames! The application may be doing too much work on its main thread. 
04-03 20:32:36.823: D/dalvikvm(1249): GC_CONCURRENT freed 856K, 8% free 29608K/32036K, paused 105ms+95ms, total 366ms 
04-03 20:32:39.274: D/dalvikvm(1249): GC_CONCURRENT freed 1433K, 6% free 30153K/32036K, paused 121ms+137ms, total 377ms 
04-03 20:32:39.683: I/Choreographer(1249): Skipped 34 frames! The application may be doing too much work on its main thread. 
04-03 20:32:40.384: I/Choreographer(1249): Skipped 41 frames! The application may be doing too much work on its main thread. 
04-03 20:32:40.844: I/Choreographer(1249): Skipped 113 frames! The application may be doing too much work on its main thread. 
04-03 20:32:41.154: I/Choreographer(1249): Skipped 73 frames! The application may be doing too much work on its main thread. 
04-03 20:32:43.193: D/group(1249): query success 
04-03 20:32:46.683: I/Choreographer(1249): Skipped 49 frames! The application may be doing too much work on its main thread. 
04-03 20:32:48.593: D/dalvikvm(1249): GC_FOR_ALLOC freed 1725K, 6% free 30261K/32144K, paused 111ms, total 130ms 
04-03 20:32:48.593: I/dalvikvm-heap(1249): Grow heap (frag case) to 30.103MB for 456992-byte allocation 
04-03 20:32:48.723: D/dalvikvm(1249): GC_FOR_ALLOC freed 1086K, 10% free 29621K/32592K, paused 98ms, total 98ms 
04-03 20:32:50.233: D/onScroll(1249): enter onScroll3 

這裏是一個更新的logcat:

04-04 07:11:00.231: W/System.err(1158): com.parse.ParseException: can't add objects for a field that isn't an array 
04-04 07:11:00.281: W/System.err(1158):  at com.parse.ParseCommand$3.then(ParseCommand.java:340) 
04-04 07:11:00.297: W/System.err(1158):  at com.parse.Task$10.run(Task.java:442) 
04-04 07:11:00.297: W/System.err(1158):  at com.parse.Task$1.execute(Task.java:67) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task.completeImmediately(Task.java:439) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task.continueWith(Task.java:316) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task.continueWith(Task.java:327) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task$8.then(Task.java:377) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task$8.then(Task.java:1) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task$11.run(Task.java:474) 
04-04 07:11:00.301: W/System.err(1158):  at com.parse.Task$1.execute(Task.java:67) 
04-04 07:11:00.311: W/System.err(1158):  at com.parse.Task.completeAfterTask(Task.java:471) 
04-04 07:11:00.321: W/System.err(1158):  at com.parse.Task.access$9(Task.java:467) 
04-04 07:11:00.321: W/System.err(1158):  at com.parse.Task$7.then(Task.java:343) 
04-04 07:11:00.321: W/System.err(1158):  at com.parse.Task$7.then(Task.java:1) 
04-04 07:11:00.336: W/System.err(1158):  at com.parse.Task.runContinuations(Task.java:502) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task.access$5(Task.java:498) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task$TaskCompletionSource.trySetResult(Task.java:557) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task$TaskCompletionSource.setResult(Task.java:591) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task$11$1.then(Task.java:485) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task$11$1.then(Task.java:1) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task$10.run(Task.java:442) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task$1.execute(Task.java:67) 
04-04 07:11:00.341: W/System.err(1158):  at com.parse.Task.completeImmediately(Task.java:439) 
04-04 07:11:00.351: W/System.err(1158):  at com.parse.Task.access$8(Task.java:435) 
04-04 07:11:00.351: W/System.err(1158):  at com.parse.Task$6.then(Task.java:309) 
04-04 07:11:00.351: W/System.err(1158):  at com.parse.Task$6.then(Task.java:1) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task.runContinuations(Task.java:502) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task.access$5(Task.java:498) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task$TaskCompletionSource.trySetResult(Task.java:557) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task$TaskCompletionSource.setResult(Task.java:591) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task$11$1.then(Task.java:485) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task$11$1.then(Task.java:1) 
04-04 07:11:00.361: W/System.err(1158):  at com.parse.Task$10.run(Task.java:442) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task$1.execute(Task.java:67) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task.completeImmediately(Task.java:439) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task.continueWith(Task.java:316) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task.continueWith(Task.java:327) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task$11.run(Task.java:478) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task$1.execute(Task.java:67) 
04-04 07:11:00.371: W/System.err(1158):  at com.parse.Task.completeAfterTask(Task.java:471) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task.access$9(Task.java:467) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task$7.then(Task.java:343) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task$7.then(Task.java:1) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task.runContinuations(Task.java:502) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task.access$5(Task.java:498) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task$TaskCompletionSource.trySetResult(Task.java:557) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task$TaskCompletionSource.setResult(Task.java:591) 
04-04 07:11:00.381: W/System.err(1158):  at com.parse.Task$3.run(Task.java:225) 
04-04 07:11:00.381: W/System.err(1158):  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 
04-04 07:11:00.381: W/System.err(1158):  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
04-04 07:11:00.381: W/System.err(1158):  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153) 
04-04 07:11:00.381: W/System.err(1158):  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267) 
04-04 07:11:00.391: W/System.err(1158):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
04-04 07:11:00.391: W/System.err(1158):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
04-04 07:11:00.391: W/System.err(1158):  at java.lang.Thread.run(Thread.java:856) 
+0

有什麼可說這裏不知道該API的規範是什麼,以及它與響應。我不熟悉Parse.com,如果您的問題是特定於該API的。 – 2013-04-03 20:03:44

+0

請看我的帖子。可能是它可以幫助你 – 2013-04-03 20:06:02

回答

0

你必須使用addUnique的可能性(增加了一個對象與給定鍵關聯數組,只如果它不在陣列中)

例如:

替代

saleObj.addAll("groupFreindsName", groupFreindsName); 

for(String value: groupFreindsName){ 
saleObj.addUnique("groupFreindsName", value); 
} 

saleObj.add("groupFreindsName", groupFreindsName); 
+0

嗨,非常感謝,我試了兩個答案,但它沒有爲我工作 – 2013-04-03 20:27:10

+0

@AdirRahamim你可以請發佈一個完整的logcat輸出? – 2013-04-03 20:29:04

+0

嗨,我添加了logcat到主線程.. – 2013-04-03 20:34:14