AsyncTask是android 1.5提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。
优点:简单快捷、过程可控
AsyncTask的使用步骤:
1 添加一个类,继承AsyncTask,并设置相应参数
2 重写四个方法
onPreExecute() 该方法将在执行后台操作前会被UI线程调用。可以在该方法中做一些准备工作,如在界面
上显示一个进度对话框(ProgressDialog)
doInBackground(Params...) 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。
负责执行耗时操作。可以在该方法中调用publishProgress方法来通知UI线程更新实时的任务进度
onProgressUpdate(Progress...)在publishProgress方法被调用后,UI 线程将调用本方法更新进度
onPostExecute(Result)在doInBackground 执行完成后,本方法将被UI 线程调用,在此方法中更新UI界面
AsyncTask的参数说明:
AsyncTask是一个抽象类. 它需要三种泛型类型的参数,Params,Progress和Result
Params 启动任务执行的输入参数,比如HTTP请求的URL。 一般用String类型
Progress 后台任务执行的百分比。 一般用Integer类型,不需要更新进度的时候用Void(大写字母V)
Result 后台执行任务最终返回的结果,一般用byte[ ]或者String