大家都用过AsyncTask,也都知道通过AsyncTask可以比较方便的从事异步操作,并且可以随时更新UI,是一个比较理想的异步事物处理方案。
AsyncTask是如何执行的?
所有人都会告诉我 execute,谁不知道啊!
我最近就遇到了一个问题,通过AsyncTask execute方法,进行异步操作,可是等了好久,doInBackground 也没有执行,更别提操作的结果了。为啥呢?
自己动手,丰衣足食,还是来找源码吧。
首先来看execute的方法体
public final AsyncTask<Params, Progress, Result> execute(Params... params) {
return executeOnExecutor(sDefaultExecutor, params);
}
遇到方法重载了,其中sDefaultExecutor 应该是个线程池,我们看一下这个线程池