2012-03-12 37 views
2

嘿,我正在嘗試做出多個http請求,並想知道在android中執行此操作的最佳方式。目前我正在使用帶有線程的IntentService,但是這並不是很好,因爲在線程完成之前,onhandleintent會返回。我應該切換到一個常規的服務,並在那裏啓動我自己的線程或asyncTask更合適? 謝謝我應該怎麼做android中的多個http請求

+0

您是否從服務着手? – 2012-03-12 17:51:08

+0

當前從一個活動開始,我打電話給一個IntentService – Tyler 2012-03-12 17:53:09

回答

0

任何時候你處理線程,你將不得不處理同步。例如,當調用onHandleIntent()時,可能需要與HTTP請求線程同步並等待它完成。

如果你事先知道你會做這個有很多,可能是值得考慮的像ThreadPoolExecutor,以節省創建和拆除線程的痛苦一點。如果您想在繼續之前等待終止,您仍然需要同步您的線程。 Android有很多方法可以做到這一點,包括抽象,使其實現起來相當簡單。

+0

我每次調用intentService時都啓動6個線程。每個線程負責使用不同的xml進行http請求以獲取不同的數據。然後我將這些數據插入到本地的sqlite數據庫中。我的代碼看起來像下面這樣: http://pastebin.com/fGqXeEbS – Tyler 2012-03-12 18:20:33

+0

我建議你看看ThreadPoolExecutor(https://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.html)如果你會一直這樣做。無論哪種方式,這聽起來更適合於實際的服務。 – NuSkooler 2012-03-12 19:11:31

0

如果你已經開始新線程(直接或間接),那麼是的,你應該使用Service而不是IntentServiceIntentService的全部意義在於它爲您處理線程。