1

您好我正在開發android應用程序。我的應用程序包含從服務器獲取數據的REST API調用。所以我的應用需求是這樣的:如何在Android中執行並行REST API調用

考慮我有2個REST API調用都是獨立的;這意味着兩者不相互依賴;所以我想要並行執行。這兩個API調用的結果都與兩個不同的活動相關聯。

我想在後臺運行這兩個網絡調用。不想在UI線程上執行。

我很困惑以下幾個解決方案: 爲每個網絡呼叫使用單獨的異步任務。如果我執行10個與異步任務並行的調用會發生什麼?

使用意圖服務:意向服務是處理多個並行在後臺的網絡調用的好方案。

如何正確處理此問題。需要這個好的解決方案。需要幫忙。謝謝。

+0

執行2 asyncTask – KOTIOS

+0

嗨堆棧感謝您快速重播。如果我想運行10個網絡電話,那麼我必須使用10個協作任務嗎?是否會影響我的應用程序和應用程序? – nilkash

+0

我不認爲你應該使用asyncTask的數量,但不會影響UI – KOTIOS

回答

3

在2個AsyncTasks上執行將會工作。但是,在Android版本3.0或更高版本上,您需要調用task.executeOnExecutor(THREAD_POOL_EXECUTOR,params)而不是執行。如果你不這樣做,AsyncTask的3.0實現只能連續運行1個任務。如果你這樣做,它使用約5個線程池來運行它們。

+0

謝謝Gabe sechan的幫助。我還有一個問題,爲什麼我們不能使用intent服務?兩者之間的平均差異。感謝您的幫助 – nilkash

+0

嗯,IntentService串行工作 - 它做了一個請求,然後另一個請求。所以如果你想要並行運行,它將無法工作。除此之外,您可以使用IntentService來完成這件事,它確實是一個優先事項。 –

+0

因此,異步任務爲新請求創建新線程,但意圖服務工作在同一線程,這就是爲什麼它是串行我是正確的? – nilkash

相關問題