1、必须在主线程中创建
2、execute方法必须在UI线程调用
3、不要在程序中直接调用onPreExecute()、等
4、一个AsynsTask只能执行一次,即只能调用一次execute方法,否则出现运行时异常
5、AsyncTask < Integer, Integer, Void > :三个泛型的参数分别代表(不使用时可用Void代替):"执行任务输入的参数","后台执行任务的执行进度","后台执行最终结果参数"
过程:
1、execute(Params… params):(开发触发异步任务)executeOnEexcutor(sDefaultExecutor,params)(串行线程池)
2、onPreExecute():用于执行后台任务前
3、doInBackground(Params… params):用于执行较为耗时的逻辑,通过用到的输入参数来处理返回结果就是onPostExecute(Result result)方法中所对应的结果,在执行过程中可以调用publishProgress(Progress… values)来处理进度相关信息。(注意:此方法非主线程,不可用来做UI操作)
4、onProgressUpdate(Progress… values),在调用publishProgress(Progress… values)时,此方法被执行。
5、onPostExecute(Result result),当后台操作结束时,doInBackground(Params… params)返回结果做为参数传递到此方法中。
6、onCancelled取消执行任务时调用,不会再调用onPostExecute方法