一、什么是AsyncTask
1.AsyncTask是Android提供的轻量级(实现代码量少)的异步类。2.为了降低异步通信的开发难度,提供了AsyncTask
3.AsyncTask直接继承于Object类,位于android.os包中。4.使用AsyncTask可以忽略Looper、MessageQueue、Handler
等复杂对象,更便捷的完成异步耗时操作。
二、AsyncTask的使用步骤
1.新建内部类继承AsyncTask
2.定义AsyncTask的三种泛型参数
AsyncTask的三种泛型参数:
Params: 启动任务执行的输入参数
Progress: 后台任务执行的百分比
Result: 后台执行任务最终返回的结果
3.重写doInbackground抽象方法(子线程)
执行完onPreExecute方法后,系统执行此方法;此方法运行在子线程中,比较耗时的操作放在此方法中执行。如果需要更新UI元素,可以调用publishProgress(Progress...)方法来完成。
4.重写onPreExecute方法
异步任务开始执行时,系统最先调用此方法;此方法运行在主线程中,可以对控件进行初始化等操作。
5.重写onProgressUpdate方法
当在后台任务中调用了publishProgress(Progress...)方法后,onProgressUpdate(Progress...)方法就会很快被调用,该方法携带的参数就是后台任务中传递过来的。在这个方法中可以对UI进行操作,利用参数中的数值就可以对界面元素进行相应的更新。
6.重写onPostExecute方法
当异步任务执行完成后,系统会调用此方法;此方法运行在主线程中,可以修改控件状态,例如:下载完成。
7.在需要启动的地方调用execute方法
new 内部类名.execute();
注:简单的来说:doInbackground()方法中执行具体的耗时任务,onProgressUpdate()方法中进行UI操作,在onPostExecute()方法中执行一些任务的收尾工作。