一、什么是AsyncTask
AsyncTask是封装了Thread 和 Handler 的 异步操作机制。内部用Thread实现了异步操作,又通过Handler和getMainLooper方式将ui的更新操作放到主线程去更新。
二、AsyncTask 的使用
AsyncTask task = new AysncTask();
task.execute();//使用此方法开始执行异步任务
task.cancel();//使用此方法取消任务
三个参数:AsyncTask是个抽象类,继承它需要实现三个泛型的参数类型,分别是:(param)参数类型,(progress)进度类型,(result)返回结果类型。
五个方法:
1、onPreExecute() : 该方法是在异步任务执行前回调的函数,所以是在主线程;
2、doInBackground(String....strrings) : 异步执行任务的函数,在子线程中运行,参数为 task.execute(param1,param2) 传递的参数。
3、onPostExecute(String result) : 异步任务执行完的结果回调,回到主线程
4、onProgressUpdate(Integer...values): 在异步执行过程中,如果调用了publishProgress(Integer i) ,将会执行该回调方法,常用于更新进度条,在主线程中执行
5、onCancellled(): 当调用task.cancel()的时候会执行此回调函数,该异步任务会被取消。