2015-03-03 32 views
0

我正在編寫一個應用程序,它可以從多個源執行多次JSON數據下載。每個下載都使用回調方法異步完成。如何處理IntentService中的多個異步內部問題

我的想法是使用IntentService,因爲我希望所有的數據處理都在同一個線程上運行,並且同時調用所有的異步下載。但是,由於IntentService一旦完成運行onHandleIntent就會停止,不會,我該如何讓它等待所有的異步下載完成?這就是我的onHandleIntent方法看起來

@Override 
    protected void onHandleIntent(Intent intent) { 
     asyncTaskAWithCallback{ 
      //some handling of data 
     } 
     asyncTaskBWithCallback{ 
      //some handling of data 
     } 

     ... 

     asyncTaskNWithCallback{ 
      //some handling of data 
     } 
     //Some code to wait for all callbacks to finish? 
    } 
+3

我建議你用自己的線程管理創建自己的'Service',在那裏你可以更好地實現你自己的規則。 – CommonsWare 2015-03-03 13:56:08

回答

0

我結束了創建一個Service代替一個IntentService就像CommonWare在評論中建議的一樣。在此之後example並將數據的處理放入單獨的線程中。

0

添加一個循環,等待一個計數器來達到你的異步操作的價值數 ,讓每一個異步增加這個數onPOST等

+0

不幸的是,異步回調從未被調用過。 – Nilsymbol 2015-03-04 12:03:25

+0

它從來沒有叫過! – 2015-03-04 13:12:30

+0

你確定你叫async.execute()? – 2015-03-04 13:13:05