我正在創建下載管理器,我想在其中同時下載多個文件並更新每個下載的進度。我用下面的行執行的AsyncTask是否可以同時創建多個AsyncTask?
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,Utility.KEY_DOWNLOAD_PATH);
不過,這並不啓動多個的AsyncTask。當我點擊下一個下載時,它首先停止並開始新的下載。
由於提前
我正在創建下載管理器,我想在其中同時下載多個文件並更新每個下載的進度。我用下面的行執行的AsyncTask是否可以同時創建多個AsyncTask?
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,Utility.KEY_DOWNLOAD_PATH);
不過,這並不啓動多個的AsyncTask。當我點擊下一個下載時,它首先停止並開始新的下載。
由於提前
你必須使用多個線程在一個活動上運行不同的不同的服務。
是的,這是處理它的另一種選擇。但我想知道用asyncTask可以做到嗎? –
@ unflagged.destination顯示您asyntask代碼 –
list.setOnItemClickListener(新OnItemClickListener(){ \t \t \t @覆蓋 \t \t \t公共無效onItemClick(適配器視圖>父,觀景,INT位置,長的id){fileDownloader.executeOnExecutor ( \t \t \t \t \t \t AsyncTask.THREAD_POOL_EXECUTOR, \t \t \t \t \t \t MidnightUtility.KEY_DOWNLOAD _路徑); \t \t \t} –
在循環內部創建對象。
void stratTask(){
for(String url:urls){
AsyncTask asyncTask=new AsyncTask();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url);
}
else{
asyncTask.execute(url);
}
}
}
它看起來像你的問題是你如何定義fileDownloader:
// Click event for single list row
list.setOnItemClickListener(new OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(activity, "List Item Clicked", Toast.LENGTH_LONG) .show();
fileDownloader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, Utility.KEY_DOWNLOAD_PATH);
你似乎被定義onclick事件之外fileDownoader。所以你實際上只有一個AsyncTask,並且當執行fileDownloader.executeOnExecuter時,你將覆蓋以及分配給該對象的前一個AsyncTask。
您可能需要更改FileDownloader類,使其包含一些AsyncTasks(List)列表,但這不是實現所需內容的唯一方法。
是的,我現在正在嘗試線程 –
我認爲onProgressUpdate()你可以調用另一個AsyncTask.How你可以在一次 – DJhon
上點擊listItem我可以調用asyncTask調用許多asyncTask。但它停止前一個,並開始新任務 –
請參閱下面鏈接: [http://stackoverflow.com/questions/4068984/running-multiple-asynctasks-at-the-same-time-not-possible ] [1] [1]:http://stackoverflow.com/questions/4068984/running-multiple-asynctasks-at-the-same-time-not-possible – MohdTausif