构建AsyncTask子类的参数
AsyncTask<Params, Progress, Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数。
params:启动任务是输入参数的类型;
progress:后台任务执行中返回;
Result:后台执行任务完成后返回结果的类型;
构建AsyncTask子类的回调方法
doInbackGround:必须重写,异步执行后台线程将要完成的任务;
OnPreExecute:执行后台耗时操作前被调用,通常完成一些初始化操作;
OnPostExecute:当doInBackground完成后,系统自动调用该方法,并将doInBackground方法返回的值传递给该方法;
OnProgressUpdate:在doInBacground()方法调用publicProgress()方法更新任务的执行进度后,就会触发该方法;



结束AsyncTask:
当进度条在加载更新是退出Activity,需要让AsynTask的生命周期跟Activity的生命周期保持一致。
//Activity.class
@ovrrived
public void pause(){
super.pause();
if(mAsyncTask != null && mAsyncTask.getStatus() == AsyncTask.status.Running) {
mAsyncTask.cancel(true);
}
}.
//将对应的AsyncTask标志为Cancel状态,并不是真正的取消,故需要在doInBackground()判断cancel状态
//AsyncTask子类
public void doInBackground(void...params) {
...
if(isCancel()) {
return;
}
mProgress.setProgress(params[0]);
}
//这样就能尽早结束当前线程的任务
网友评论