嘿,我正在尝试做出多个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