参数解释:
第一个:String,这个参数是doInBackground()方法中要用到的参数,如果不需要参数,传Void即可。
第二个:Void,这个参数是onProgressUpdate()方法中的要用到的参数,如果不需要,传Void即可
第三个:String,这个参数是doInBackground()的返回值,这个返回值会返回到onPostExecute()方法的参数中供我们使用
AsyncTask asyncTask= new AsyncTask<String, Void, String>() {
//在主线程执行,首先执行
@Override
protected void onPreExecute() {
super.onPreExecute();
}
//在子线程执行,执行耗时操作
@Override
protected String doInBackground(String... voids) {
//发出一个取消任务的请求,但是不保证该任务会被取消
cancel(true);
//判断该任务是否取消
if (isCancelled()) {
}
//请参阅onProgressUpdate()方法说明
publishProgress();
return null;
}
//在主线程中执行,在任务执行过程中不断回调
//这个方法要执行,需要在 doinbackground()方法中
//调用publishProgress()方法
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
//在主线程执行,任务完成后执行
@Override
protected void onPostExecute(String aVoid) {
super.onPostExecute(aVoid);
}
};
//一个asyncTask只能执行一次
asyncTask.execute();