AsyncTask作为一个优秀的封装,很多人都在用,可是我估计很多人并不清楚多个AsyncTask对象到底是串行执行的,还是并行执行的,如果是并行的,那么最多同时执行几个异步任务呢?
源码面前无秘密,我们看一下源代码就知道了。
这里以Android-23为例。
AyncTask调用例子
AsyncTask task = new AsyncTask() {
@Override
protected Object doInBackground(Object[] params) {
return null;
}
};
task.execute();
普通AsyncTask对象调用如上,主要是通过task.execute()来执行异步任务。那么execute到底做了什么呢?
AsyncTask的execute函数
看看实现:
@MainThread
public final AsyncTask<Params, Progress, Result> execute(Params... params) {
return executeOnExecutor(sDefaultExecutor, params);
}
超简单,就一行。先看看executeOnExecutor函数:
@MainThread
public final AsyncTask<Params, Progress, Result> executeOnExecutor(Executor exec,
Params... params) {
if (mStatus !