【问题标题】:Android: Cannot execute more than one Internet process at the same timeAndroid:不能同时执行多个互联网进程
【发布时间】:2014-12-07 15:36:28
【问题描述】:

我正在开发一个 Android 应用程序,但我遇到了问题。当我通过异步任务从 Internet 执行一个进程时,我无法同时从不同的线程运行另一个 Internet 进程。在第一个过程结束之前,另一个过程不会开始。异步任务启动,但 http 请求等待另一个。

我该如何处理这个问题?

谢谢

【问题讨论】:

    标签: android android-asynctask androidhttpclient


    【解决方案1】:

    您可能正在使用execute() 来运行您的AsyncTask。引用the AsyncTask JavaDocs:

    首次引入时,AsyncTask 是在单个后台线程上串行执行的。从 DONUT 开始,这被更改为允许多个任务并行运行的线程池。从 HONEYCOMB 开始,任务在单线程上执行,以避免并行执行导致的常见应用程序错误。

    如果你真的想要并行执行,你可以使用 THREAD_POOL_EXECUTOR 调用 executeOnExecutor(java.util.concurrent.Executor, Object[])。

    或者,使用提供异步操作的 HTTP 库作为库本身的一部分,例如 OkHttp

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2017-01-28
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多