推 motors55:遞迴 06/23 10:37
→ asadman1523:syncorization? 06/23 10:46
推 kusoayan:讓 task 去呼叫 task? 06/23 11:36
推 namejoshua:如果你是用 api level 11 以上的話 06/23 11:50
→ namejoshua:有個 SERIAL_EXECUTOR 可以在 asyctask.execute 的時候 06/23 11:51
→ namejoshua:選用 06/23 11:51
→ namejoshua:但如果也要兼容 api 11 以下的話 06/23 11:52
→ namejoshua:可能就要把 next asynctask 寫在前一個的 postexecute 06/23 11:53
→ namejoshua:裡面了 06/23 11:53
我在api 11以上執行ASYNCTASK
我的寫法是
asyncetask1.exceute();
asyncetask1.exceute();
asyncetask1.exceute();
我查看我的log
06-23 07:47:47.901: I/0.0(637): httpUrl=xxxx
06-23 07:47:48.261: I/0.0(637): ===========paramter.i_queue=0
06-23 07:47:49.572: I/0.0(637): 結束非同步執行
06-23 07:47:54.002: I/0.0(637): httpUrl=xxxx
06-23 07:47:54.122: I/0.0(637): ===========paramter.i_queue=1
06-23 07:47:54.331: I/0.0(637): 結束非同步執行
06-23 07:47:54.624: I/0.0(637): httpUrl=xxxx
06-23 07:47:54.901: I/0.0(637): ===========paramter.i_queue=2
06-23 07:47:55.411: I/0.0(637): 結束非同步執行
請問這樣子算是有依序性嗎?還是會依找網路等其他因素所影響呢?
※ 編輯: sweet00914 來自: 122.118.31.148 (06/23 15:53)
推 namejoshua:喔不好意思我上面講反了 api 11 開始 asynctask 就是 06/23 21:37
→ namejoshua:預設成 serial 執行了,所以你直接 call 三次應該是OK 06/23 21:37
→ namejoshua:Order of execution 部分 06/23 21:40
→ ajujgrua:如果改用ThreadPoolExecutor+BlockingQueue也會這樣嗎? 06/25 00:07