![](/img/trans.png)
[英]Android AsyncTask.THREAD_POOL_EXECUTOR vs custom ThreadPool with Runnables
[英]AsyncTask.THREAD_POOL_EXECUTOR return values
如何不使用get()
將多個AsyncTask的值返回到列表中?
我目前正在這樣做,但我知道這是不對的。
for (int i=0; i != mediaList.size(); i++){
UploadImage uploadImage = new UploadImage(this,
new File(FileChooser.getPath(this, mediaList.get(i).uri)));
String x = uploadImage.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR).get();
mediaResult.add(x);
}
如何不使用get()將多個AsyncTask的值返回到列表中?
你不知道 AsyncTask
是異步的,在后台線程上完成其工作。
相反,重寫UploadImage
以獲取整個文件集,讓其處理所有文件,然后在onPostExecute()
使用結果。
您可以創建一個具有多少異步計數器的倒計時鎖存器,然后等待它達到0
CountDownLatch cdl = new CountDownLatch(3);
Async1.oncomplete - > cdl.countDown();
Async2.oncomplete - > cdl.countDown();
Async3.oncomplete - > cdl.countDown();
cdl.await
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.