2016-03-01 129 views

回答

2

从下“执行顺序”的AsyncTask DOC:

当第一次推出,AsyncTasks进行系列在单个后台线程执行。从DONUT开始,这被更改为允许多个任务并行操作的线程池。从HONEYCOMB开始,任务在单个线程上执行,以避免并行执行导致的常见应用程序错误。

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

这意味着每个请求的不仅是等待前一个请求来完成,但其所有JSON被读取/解析为好。

AsyncTask默认为单线程,Retrofit不是。为了公平起见,他们应该使用ThreadPoolExecutor作为AsyncTask。不指出这种区分边界是不真诚的。我很惊讶他们不知道AsyncTask的单线程性质。