【问题标题】:Concurrent connections with a single AndroidHttpClient instance与单个 AndroidHttpClient 实例的并发连接
【发布时间】:2015-01-14 13:12:56
【问题描述】:

在我的项目中,我需要使用单个 AndroidHttpClient 实例执行多个 HTTP 请求,但实际上,HTTP 请求是一个一个处理的。有办法定义最大并发连接数吗?

【问题讨论】:

  • HTTP请求没有一一处理。你在使用 AsyncTask 吗?默认情况下,这些是串行处理的。
  • 是的,我的 AndroidHttpClient 实例在 AsyncTask 类中是静态的,我在不同的 RequestAsyncTask 中扩展该类以使用单个客户端执行请求。我该怎么做才能有并发连接?感谢您的帮助!
  • 好的。我会尽快发布答案。
  • 好吧抱歉我开车了

标签: android androidhttpclient


【解决方案1】:

HTTP 请求是并行执行的,但如果您使用AsyncTask,那么任务本身默认是串行执行的,一次一个。要更改此行为,请使用executeOnExecutor 方法并行运行它们:

new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ...);

这应该可以解决这个问题。

【讨论】:

  • 我爱你!非常感谢!只是一个问题:api
  • 有趣的问题,但请注意,从 API 级别 4 (DONUT) 到 11,异步任务默认并行执行,因此您不需要在这些 API 级别上调用此函数。你只需要担心 pre-DONUT,我怀疑你需要支持它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
相关资源
最近更新 更多