AsyncTask使用详解
AsyncTask:是一种轻量级的异步任务类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI。AsyncTask封装了Thread和Handler,通过AsyncTask可以方便地执行后台任务以及在主线上访问UI。(不适合进行特别耗时的后台任务,特别耗时的任务建议使用线程池)。
AsyncTask是一个抽象的泛型类,声明如下
public abstract class AsyncTask<Params, Progress, Result>
四个核心方法:
onPreExecute(),
doInBackground(Params...params), (在线程池中执行,用于执行异步任务)
onProgressUpdate(Progress...values),
onPostExecute(Result result)
注意事项:AsyncTask的类必须在主线程中加载,AsyncTask的对象必须在主线程中调用吗,execute方法必须在UI线程调用。不要在程序中直接调用四个核心方法。一个AsyncTask对象只能执行一次,即只能调用一次execute方法。