1.简介:AysncTask 是SDK 1.5以后提出的对Thread+Handler的封装 本质是一个静态线程池
2.抽象的5个状态:(1)准备运行(2)正在后台运行(3)进度更新(4)完成后台更新(5)取消任务
3.各阶段任务:
3.1 onPreExecute()建立任务,在UI显示进度条
3.2 doInBackground(params)执行耗时的后台操作,返回结果到onPostExecute()中
3.3 onProgressUpdate(Progress)动态显示进度条
3.4 onPostExecute(Result)计算结束后,结果传递给该函数
3.5 onCancelled()在调用AysncTask的cancel()时调用
4.AysncTask的构造函数参数:
4.1 Params 传递给后台的参数类型
4.2 Progress 后台进程的进度(百分数)
4.3 Result 后台执行结果的类型
4.4 假如一个类型不被使用,可以简单地使用 Void类型
5.正确使用AsyncTask,应该遵守的准则:
5.1 Task的实例必须在UI线程中创建
5.2 execute方法必须在UI线程中调用
5.3 不能手动调用onPreExecute() onPostExecute(Result) doInBackground(params...) onProgressUpdate(Progress)
需要在UI线程中实例化Task来调用
5.4 该Task只能被执行一次,多次执行将会出现异常
相关文章(链接):
AsyncTask缺陷分析: http://my.oschina.net/dingbuoyi/blog/62376
AysncTask demo: http://my.oschina.net/summerpxy/blog/180835
参考: http://www.oschina.net/question/54100_27821
2.抽象的5个状态:(1)准备运行(2)正在后台运行(3)进度更新(4)完成后台更新(5)取消任务
3.各阶段任务:
3.1 onPreExecute()建立任务,在UI显示进度条
3.2 doInBackground(params)执行耗时的后台操作,返回结果到onPostExecute()中
3.3 onProgressUpdate(Progress)动态显示进度条
3.4 onPostExecute(Result)计算结束后,结果传递给该函数
3.5 onCancelled()在调用AysncTask的cancel()时调用
4.AysncTask的构造函数参数:
4.1 Params 传递给后台的参数类型
4.2 Progress 后台进程的进度(百分数)
4.3 Result 后台执行结果的类型
4.4 假如一个类型不被使用,可以简单地使用 Void类型
5.正确使用AsyncTask,应该遵守的准则:
5.1 Task的实例必须在UI线程中创建
5.2 execute方法必须在UI线程中调用
5.3 不能手动调用onPreExecute() onPostExecute(Result) doInBackground(params...) onProgressUpdate(Progress)
需要在UI线程中实例化Task来调用
5.4 该Task只能被执行一次,多次执行将会出现异常
相关文章(链接):
AsyncTask缺陷分析: http://my.oschina.net/dingbuoyi/blog/62376
AysncTask demo: http://my.oschina.net/summerpxy/blog/180835
参考: http://www.oschina.net/question/54100_27821