嘿,我正在嘗試做出多個http請求,並想知道在android中執行此操作的最佳方式。目前我正在使用帶有線程的IntentService,但是這並不是很好,因爲在線程完成之前,onhandleintent會返回。我應該切換到一個常規的服務,並在那裏啓動我自己的線程或asyncTask更合適? 謝謝我應該怎麼做android中的多個http請求
回答
任何時候你處理線程,你將不得不處理同步。例如,當調用onHandleIntent()時,可能需要與HTTP請求線程同步並等待它完成。
如果你事先知道你會做這個有很多,可能是值得考慮的像ThreadPoolExecutor,以節省創建和拆除線程的痛苦一點。如果您想在繼續之前等待終止,您仍然需要同步您的線程。 Android有很多方法可以做到這一點,包括抽象,使其實現起來相當簡單。
我每次調用intentService時都啓動6個線程。每個線程負責使用不同的xml進行http請求以獲取不同的數據。然後我將這些數據插入到本地的sqlite數據庫中。我的代碼看起來像下面這樣: http://pastebin.com/fGqXeEbS – Tyler 2012-03-12 18:20:33
我建議你看看ThreadPoolExecutor(https://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.html)如果你會一直這樣做。無論哪種方式,這聽起來更適合於實際的服務。 – NuSkooler 2012-03-12 19:11:31
如果你已經開始新線程(直接或間接),那麼是的,你應該使用Service
而不是IntentService
。 IntentService
的全部意義在於它爲您處理線程。
- 1. cURL請求 - 我該怎麼做?
- 2. 我應該怎麼做?
- 3. 當兩個異步請求完成時,我該怎麼做?
- 4. 我該怎麼做,我應該
- 5. 我應該怎麼做一個聚合?
- 6. 我該怎麼做?
- 7. 我該怎麼做?
- 8. 我的android應用程序中有多個http請求。線程
- 9. 我該怎麼做MongoDB中
- 10. 嗨,我正在嘗試做一個https請求,需要認證和多個參數,我該怎麼做?
- 11. 我該怎麼做認證在Android
- 12. 我該怎麼做?(Android Whack-A-Mole)
- 13. 我應該阻止HTTP 1.0請求嗎?
- 14. 我被要求編碼一個URL。我該怎麼做呢?
- 15. 我需要驗證多個表中的數據......我應該怎麼做?
- 16. 我應該怎麼做來處理WebServiceException:
- 17. C++ 11/Auto - 我應該怎麼做?
- 18. (mongo)ID數組:我應該怎麼做?
- 19. 當android活動中斷時我應該怎麼做?
- 20. Ignited-Datatables,應該怎麼做?
- 21. netbeans應該怎麼做?
- 22. 我在這個Angular HTTP請求中做了什麼錯誤?
- 23. Net :: HTTP ::代理請求...你怎麼做到的?
- 24. 我該怎麼做? nope
- 25. 我該怎麼做WKWebView
- 26. 我該怎麼做(遊戲)?
- 27. 我該怎麼做Asp.Net?
- 28. regexp freebie ...我該怎麼做?
- 29. 反思?我該怎麼做?
- 30. 我該怎麼做PyQt4?
您是否從服務着手? – 2012-03-12 17:51:08
當前從一個活動開始,我打電話給一個IntentService – Tyler 2012-03-12 17:53:09