2016-11-23 26 views
0

這是更高級別的理解問題。Android多個asynctasks獲取網絡響應而不是一個

我現在要做的是運行一個Asynctask,它連續執行6個方法,每個方法都是一個不同的網絡請求來檢索數據。我想知道如果不是讓1個asynctask連續執行這些請求,而是將它減少查詢開銷並獲取時間,如果我要將所有6個方法分離到它們的OWN Asynctasks中並連續執行它們以創建6個後臺線程?

我現在使用URLConnection和InputStreamReader來獲取數據。 Android系統會允許這樣的實現嗎?如果是這樣,它是否會提高從各種網絡調用中檢索所有數據所需的等待時間?

在此先感謝!

回答

0

通常,即使您一起啓動多個實例,AsyncTasks也可以在單個線程上串行執行。如果你想在並行運行它們,你會想使用類似

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
} else { 
    new MyAsyncTask().execute(); 
} 

爲了更快的結果,並能夠輕鬆運行多個查詢,可以考慮使用一個網絡圖書館像Retrofit代替的AsyncTask,因爲他們處理像方向改變一樣的常見問題。