在我的应用程序中,我想同时处理多个文件的下载。为此,我启动了几项服务,每个请求一个。我不确定,Android 是否支持并行的同时 http 请求?
在这种情况下,每个请求都有一个 HTTPClient 是好习惯还是坏习惯?
非常感谢您的帮助!
在我的应用程序中,我想同时处理多个文件的下载。为此,我启动了几项服务,每个请求一个。我不确定,Android 是否支持并行的同时 http 请求?
在这种情况下,每个请求都有一个 HTTPClient 是好习惯还是坏习惯?
非常感谢您的帮助!
HttpClient 不是异步的,并且本身不支持并行连接。您可以有多个线程,每个线程使用单独的 HttpClient 实例执行下载。
您可能还想查看 ExecutorService:http: //developer.android.com/reference/java/util/concurrent/ExecutorService.html
当配备池连接管理器时ThreadSafeClientConnManager
,HttpClient
可以使用多个执行线程同时执行多个请求。
这是有关如何使用它的完整示例:2.9。多线程请求执行。
更新:花了一段时间,但ThreadSafeClientConnManager
现在已弃用(请参阅下面的Apache Http Client Removal摘录):
Android 6.0 版本删除了对 Apache HTTP 客户端的支持。如果您的应用正在使用此客户端并针对 Android 2.3(API 级别 9)或更高版本,请改用 HttpURLConnection 类。此 API 更高效,因为它通过透明压缩和响应缓存减少了网络使用,并将功耗降至最低。
做一些测试以确定有多少并发 HTTPRequest 可以正常工作。
我建议启动一项服务并拥有多个线程而不是多个服务。