2017-05-22 124 views
0

並行執行的的AsyncTask的,我發現了2種方式:並行執行的的AsyncTask

第一個使用THREAD_POOL_EXECUTOR

myTask.executeOnExecutor (AsyncTask.THREAD_POOL_EXECUTOR); 

第二步用AsyncTaskCompat.executeParallel

AsyncTask asyncTaskTest = new myTask(); 
AsyncTaskCompat.executeParallel (asyncTaskTest , null); 

是他們之間有什麼區別?

回答

0

如果設備運行在Honeycomp或更高版本上,則沒有區別。

在Api 11下面,這些任務將從api 1連續執行到(exlusive)DONUT,並從DONUT到Honeycomp parellel運行。

所以:

API 1 - 3:串聯在單個後臺線程

API 4 - 11:平行螺紋

API 12- x的池:使用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);

根據您的最低API級別,您可以使用executeOnExecutor()直接從AsyncTask

0

AsyncTaskCompat.executeParallel(asyncTaskTest,null);已被棄用,發現在這Link

使用的ThreadPoolExecutor可以實現並行執行,因爲你可以傳遞的ThreadFactory這有助於爲對象Link

的創作由於後來有更強大的功能相比第一。最好隨着後者移動,Developer blocks也暗示如此。

+0

good catch @deprecated – JacksOnF1re