api 翻译之AsyncTask
来源:互联网 发布:苹果ipa发布网站源码 编辑:程序博客网 时间:2024/05/31 06:22
AsyncTask
类的简介:
AsyncTask可以使UI线程更合理更简单的使用。这个类允许执行后台操作,而且可以在不使用多线程或handlers的情况下给主线程传输数据。
异步任务被定义为在后台进行的运算,结果发布到主线程。
异步任务被三种类型和四个步骤所定义,三种类型分别是Params,Progress,Result和四个步骤分别是begin,doInBackground,processProgress和end。
使用方法:
异步任务必须被继承使用,它的子类至少要覆写方法:doInBackground方法,通常也要覆写另一个方法:onPostExecute(Result)。
上面的代码是其子类异步下载文件的示例。
异步任务的三种类型
异步任务的三种类型的描述如下:
1.Params:发送给正在执行的任务的参数(参数类型)。
2.Progress:正在后台运算的时候发布的进度(进度类型)
3.Result:后台运算的结果(返回值的类型)
异步任务并不非得使用所有这些类型,为了标记不使用的类型,简单的在其位置上填入Void。
比如:上面的代码。
四个步骤:
当一个一步任务执行时,任务的四个步骤如下:
1.onPreExecute(),在异步执行时立即被UI线程调用,这一步通常用来设置任务,比如在用户界面显示进度条。
2.doInBackground(Params…),当onPreExecute()方法执行完成时立即被后台线程调用。这一步用来执行耗时间的后台操作。异步任务的参数被传到这一步里。操作的结果必须在这一步被返回并且会被传到最后一步。这一步也可以使用publishProgress(Progress…)来发布一个或者多个进度单位。这些值在onProgressUpdate(Progress…)这一步被发布到UI进程中
3.onProgressUpdate(Progress…),在调用publishProgress(Progress…)之后被UI线程调用,执行的时间不定。这个方法用来在后台操作仍在执行的时候在用户界面显示不同形式的进度。比如它可以推动进度条进度或者在文本里显示log信息。
4.onPostExecute(Result…),在后台程序结束后被UI线程调用。后台程序执行的结果以参数的形式传给这一步。
线程规则
为了是这一个类更好的被使用,要遵循下面几个原则:
1任务实例必须在主线程中创建
2Execute(Params…)必须被UI线程调用
3不用手动的调用onPreExecute(),onPostExecute(Result), dolnBackgrcund(Params. . .), onProgressUpdate(Progress.. .)
4任务只能被执行一次(当尝试执行第二个时会抛出异常)
- api 翻译之AsyncTask
- AsyncTask官网API翻译
- Android API 之 AsyncTask
- TextMeshPro之API翻译
- leafLet之API翻译
- Android的AsyncTask官方API谷歌翻译版
- redis学习之API翻译
- jQuery API翻译之开篇
- Android API 翻译之 UsbDevice
- Cesium API翻译之Animation
- Android API翻译之WebViewClient
- Android开发之使用AsyncTask实现实时翻译
- AsyncTask的翻译
- 翻译AsyncTask官方文档
- AsyncTask源码翻译
- AsyncTask(翻译:异步任务)
- Unity Api 文档翻译 之Render Texture
- Unity Api翻译之Audio Listener
- ext体验
- swift性能测试工具--COSBanch
- No JVM could be found on your system错误的解决办法
- Ubuntu12.04 挂载nfs文件系统
- 宇龙酷派笔试题 2014 武汉
- api 翻译之AsyncTask
- 缓冲区溢出实验(bufbomb)
- hdu 2112 最短路径
- 枚举类 学习笔记(二)
- 2014宇龙酷派校招西安java类笔试题(热乎的,还冒烟呢)
- 设计模式-建造者模式
- POJ3468 —— 线段树 || 树状数组
- Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?
- JAVA初学之容器