为甚么要异步任务?
1.Android是单线程模型
2.耗时操作要放在非主线程里面执行
构建Asynctask子类的参数
1、asynctask<Params,Progress,Result>是一个抽象类,
通常用于被继承,继承AsyncTask需要指定如下三个泛型参量:
Params:启动任务时输入参数的类型。
Progress:后台执行任务中返回进度值的类型。
Result:任务执行完毕需要进行返回的指定的泛型作为返回值。
2.重写四个方法:
1、onPreExecute:执行之前调用。
2、doInBackground(Params):子线程中运行的任务放在这里,用return语句返回结果。注意:这里是不能进行UI操作的。
3、onProgressUpdate(Progress):在后台任务中调用publishProgress(progress)方法后,这个方法会被调用,可以对UI进行操作。
4、onPostExecute(Result):后台任务执行完毕并返回值时,这个方法会被调用。