AsyncTask
一种轻量级的异步任务类,内部封装了Thread和Handler,对于特别耗时的任务推荐使用线程池,因为异步任务默认情况下是串行的,容易造成阻塞;
onPreExecute、doInBackground、onPostExecute按顺序执行,其中onPreExecutedo做一些执行耗时操作前的一些准备工作,doInBackground运行在子线程执行耗时操作;onPostExecute可以在主线程更新UI;
使用注意事项:
- AsyncTask对象必须在主线程创建;
- execute方法必须在主线程调用;
- 一个AsyncTask对象只能执行一次execute方法;否则会报运行时异常;
- 在Android1.6之前,AsyncTask是串行执行任务;1.6时开始采用线程池并行处理任务;3.0后又开始采用一个线程来串行执行任务,但是我们也可以通过AsyncTask的executeOnExecutor方法来并行执行任务;