15

在我的应用程序中,我想同时处理多个文件的下载。为此,我启动了几项服务,每个请求一个。我不确定,Android 是否支持并行的同时 http 请求?

在这种情况下,每个请求都有一个 HTTPClient 是好习惯还是坏习惯?

非常感谢您的帮助!

4

3 回答 3

19

HttpClient 不是异步的,并且本身不支持并行连接。您可以有多个线程,每个线程使用单独的 HttpClient 实例执行下载。

您可能还想查看 ExecutorService:http: //developer.android.com/reference/java/util/concurrent/ExecutorService.html

于 2011-09-21T14:33:59.543 回答
5

当配备池连接管理器时ThreadSafeClientConnManagerHttpClient可以使用多个执行线程同时执行多个请求。

这是有关如何使用它的完整示例:2.9。多线程请求执行

更新:花了一段时间,但ThreadSafeClientConnManager现在已弃用(请参阅下面的Apache Http Client Removal摘录):

Android 6.0 版本删除了对 Apache HTTP 客户端的支持。如果您的应用正在使用此客户端并针对 Android 2.3(API 级别 9)或更高版本,请改用 HttpURLConnection 类。此 API 更高效,因为它通过透明压缩和响应缓存减少了网络使用,并将功耗降至最低。

于 2012-02-06T20:52:24.667 回答
0

做一些测试以确定有多少并发 HTTPRequest 可以正常工作。

我建议启动一项服务并拥有多个线程而不是多个服务。

于 2011-09-21T14:26:00.550 回答