Android中的线程形态,除了传统的Thread外,还包含AsyncTask、HandlerThread、IntentService,这三者底层也是使用线程实现的。
AsyncTask
AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把任务的进度和执行结果传递给主线程,并在主线程中更新UI。从实现上来说,AsyncTask封装了Thread 和 Handler,通过AsyncTask可以更加方便地执行后台任务以及在主线程中更新UI。但是AsyncTask并不适合进行特别耗时的后台任务,耗时的后台任务,建议使用线程池。
public abstract class AsyncTask<Params, Progress, Result>
Params表示参数的类型, Progress表示后台任务执行进度的类型, Result表示后台任务返回结果的类型。如果AsyncTask不需要传递参数,这三个参数可以用Void表示。
AsyncTask提供了四个核心方法:
protected void onPreExecute