2015-09-21 16 views
0

android Asynctask在不同的API級別之間經常被修改。我正在開發一個應用程序,我必須將圖像上傳到FTP服務器。我想以序列化的順序來執行此操作(通過每個asyntask上傳一個圖像上傳圖像)。我理解SERIAL_EXECUTORTHREAD_POOL_EXECUTOR的東西,但我只是想了解一下asynctask的默認行爲(我的最小目標API是ICS 4.0)。如果我簡單地在循環中執行10個asyncs',他們將進入線程隊列並逐個執行,或者他們會並行執行?什麼是Android中AsyncTasks的默認執行方式?

+0

如果你自己控制線程,我認爲,直接使用'Thread'類和'Handler'類可能是捷徑。它將全部在你的掌控之下! – hata

回答

3

AsyncTask文檔中:

當第一次推出,AsyncTask小號進行系列在單個 後臺線程執行。從DONUT開始,將其更改爲允許多個任務並行操作的線程池 。開始 與HONEYCOMB,任務在單個線程上執行,以避免 由並行執行引起的常見應用程序錯誤。

如果你真的想並行執行,你可以調用 executeOnExecutor(java.util.concurrent.Executor, Object[])THREAD_POOL_EXECUTOR

因此,最小目標爲14時,它們將被序列化。

+0

只有最後一行是我正在尋找,謝謝 –

0

您不能使用一個內部循環的異步任務doInBackground()?如果你想控制它們,你可以調用第一個onPostExecute()中的第二個異步任務。

+0

那是:異步任務內循環。 –

相關問題