AsyncTask 是一个抽象类
1、创建一个子类去继承AsyncTask
- Params 在执行 AsyncTask 时需要传入的参数,可用于在后台任务中使用。
- Progress 后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为进度单位。
- Result当任务执行完毕后,如果需要对结果进行返回,则使用这里指定的泛型作为返回值类型
注:泛型参数指定为 Void,表示在执行 AsyncTask 的时候不需要传入参数给后台任务
class AsyncTask extends AsyncTask<Params, Progress, Result>{
//该方法运行在UI线程中,可对UI控件进行设置
@Override
protected void onPreExecute() {
}
//该方法不运行在UI线程中,主要用于异步操作,
//所有代码都会在子线程中运行
//通过调用publishProgress(Progress... values)方法
//触发onProgressUpdate对UI进行操作
@Override
protected Params doInBackground(Params... params) {
return null;
}
//接收doInBackground(),return的参数
//可以利用返回的数据来进行一些 UI 操作
@Override
protected void onPostExecute(Params s) {
}
//在doInBackground方法中,
//每次调用publishProgress方法都会触发该方法
//运行在UI线程中,可对UI控件进行操作
@Override
protected void onProgressUpdate(Progress... values) {
}
}
2、启动这个任务
new MyAsynTask().execute(Params... params);