2016-02-29 20 views
0

我的情況是這樣的:首先 叫我取它從數據庫所需項目第一的AsyncTask。之後,我調用另一個AsyncTask來獲取這些Item圖像。從一個類中的多個AsyncTask獲取數據?

我從AsynTasks使用回調獲取數據。

這裏是問題 - 因爲我使用的回調,在我的課我有方法processFinish當它完成它的計算返回的AsyncTask數據。問題在於兩個彼此依賴的異步任務。我現在應該怎麼做?

回答

0

可以使用的AsyncTask的get()方法,將等待輸出,並不會進行進一步 你也可以用一個超時使用它。

new BackgroundTask().execute.get();

new BackgroundTask.execute.get(long timeout); 
+0

正如我所提到的,這個方法不推薦使用,因爲.get鎖定UI。 – WheelPot

0

您可以執行裏面一個又一個的AsyncTask,但由於這種方法在UI線程上運行,你應該這樣做內onPostExecute()。

@Override 
    protected void onPostExecute(Void args) { 
     new AsyncTask2.execute(..); // Start second task once you've got first results 
    } 

在第二個AsyncTask完成後,您只需調用一次方法processFinish(..)一次。

反正有你爲什麼用兩個AsyncTasks理由嗎?根據您的解釋,我們可以相信您可能只能使用一項任務。