我正在开发一个Android应用程序,但我有问题。当我通过异步任务从Internet执行进程时,我无法同时从不同的线程运行另一个Internet进程。另一个过程直到第一个结束才开始。异步任务开始,但http请求等待另一个。
我该如何处理这个问题?
由于
答案 0 :(得分:0)
您可能正在使用execute()
来运行AsyncTask
。引用the AsyncTask
JavaDocs:
首次引入时,AsyncTasks在单个后台线程上串行执行。从DONUT开始,这被改为一个线程池,允许多个任务并行运行。从HONEYCOMB开始,任务在单个线程上执行,以避免由并行执行引起的常见应用程序错误。
如果您真的想要并行执行,可以使用THREAD_POOL_EXECUTOR调用executeOnExecutor(java.util.concurrent.Executor,Object [])。
或者,使用提供异步操作的HTTP库作为库本身的一部分,如OkHttp。