android学习---使用AsyncTask

来源:互联网 发布:linux禁用用户怎么做 编辑:程序博客网 时间:2024/06/04 18:09

一、什么是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()方法中执行一些任务的收尾工作。