AsysnTask&Handler
来源:互联网 发布:mac录屏如何录制声音 编辑:程序博客网 时间:2024/06/08 02:27
AsynTask Handler 都是为了不阻塞UI主线线程。
UI的跟新只能在UI主线程中完成,当遇到耗时操作时,在UI线程中处理会被系统抛出异常,因此,耗时操作不能再UI主线程中完成,那么就要使用到AsynTask或Handler了,他们有什么区别呢?
AsynTask是Android提供的轻量级异步类,(这里的轻量不代表真的轻量,知识简单快捷,资源消耗大于Handler)。可以直接继承AsynTask类,在类中实现异步操作,并提供接口反馈操作执行的程度。
new AsynTask<Params,Progress,Result>
e.g:
不难看出它有三个参数,分别是params参数,progress进度,及result返回值,AsynTask 含有四个方法:
1.onPreExecute();该方法在执行实际后台操作前被UI thread调用,可以在该方法内做一些准备工作。如在界面上显示一个进度条。
2.doInBackground(Params..);在onExonPreExecute();后马上执行,该方法运行在后台线程中,做耗时操作。与publicProgress(Params..);成对,实现实时进度的更新。
3.onProgressUpdate(Progress..);在publicProgress();调用后UI thread 将调用这个方法,用于传递更新的数据,如更新UI主线程中的进度条。
e.g
4.onPostExecute(Result);在doInBackground();方法执行完成之后,UI thread将调用onPostExecute();后台计算结果将通过该方法传递给UI thread。
e.g
另外,细心地你可能发现为什么参数是params,progress,resuilt。是的,param 参数和progres参数都是数组传参,你可以传数组,也可以穿多个参数!停止一步操作是xxx。cancal(false);
0 0
- AsysnTask&Handler
- Handler
- Handler
- Handler
- handler
- handler
- Handler
- Handler
- Handler
- Handler
- Handler
- Handler
- handler
- Handler
- handler
- handler
- Handler
- Handler
- mysqldump参数大全
- 创建springmvc src文件和jsp文件
- 二分查找中term有重复的情况
- 解释型语言与编译型语言的区别
- Mysql压缩包版的安装方法
- AsysnTask&Handler
- 树状数组选讲
- 使用rand5()生成rand7()
- 每个程序员都会的 35 个 jQuery 小技巧
- 一结(13)
- Android-Uiautomator:keyCode快速输入
- 加油,day2
- Error inflating class fragment解决方法
- 进黑马的第一天