异步任务AsyncTask
来源:互联网 发布:二手交易平台源码 编辑:程序博客网 时间:2024/05/16 19:42
有时我们要做一些耗时的任务时,往往不会在UI主线程里面去做这些事情,而是在另外的线程里去执行。我个人觉得用异步任务AsyncTask可以非常简单地实现这一操作。它有两个特别明显的好处:1、不会阻塞主线程;2、可以修改主线程界面组件。
AsyncTask< Params,Progress,Result>是抽象类,它的三个泛型参数的含义是:
Params:启动任务执行的输入参数类型
Progress:后台任务完成情况的反馈值的类型
Result:后台执行完成返回的值的类型
使用AsynTask需要执行如下几步:
1、创建AsynTask的子类,并为三个泛型指定类型,如果某个参数不需要指定类型,可指定为Void(V大写)。
2、重写各种方法:
doInBackground(Params…):这个方法最重要,在里面实现你需要在后台执行的任务,例如在这里实现复制文件、下载图片等等任务。在该方法中还可以主动调用publishProgress(Progress…values)方法去反馈更新任务的完成状况。
onProgressUpdate(Progress…values):在调用了publishProgress(Progress…values)后,会触动系统调用此方法。
onPreExecute():该方法将在执行耗时后台任务之前被调用,通常用来完成一些初始化的准备工作。
onPostExecute(Result result):当DoInBackground()完成后,系统调用该方法,并把DoInBackground()方法的返回值给它。
3、调用AsyncTask子类实例的execute(Params…params)方法开始执行耗时任务。
下面贴一个异步任务下载的例子(《疯狂Android讲义》上面的例子):
public class AsyncTaskTest extends Activity{ private TextView show; @Override public void oncreate(Bundle savedInstanceState){ super.onCrate(savedInstanceState); setContentView(R.layout.main); show = (TextView)findViewById(R.id.show); } //一个触发下载任务的按钮的点击事件 public void download(View source) throws Exception{ DownTask task=new DownTask(this); task.execute(new URL("..."));//这里就是在开始执行耗时任务了 } //定义一个AsyncTask的实现类 class DownTask extends AsyncTask<URL,Integer,String>{ 大概就是在onPreExecute里面实现了一个之前声明的进度展示框,在doInBackground里去实时调用publishProgress方法,在onProgressUpdate方法里面去实时更新进度框的进度条 }
- Android异步任务AsyncTask
- AsyncTask异步任务
- 异步任务AsyncTask
- AsyncTask异步任务
- AsyncTask异步任务
- Android--AsyncTask异步任务
- Android AsyncTask异步任务
- 异步任务(AsyncTask)
- Android 异步任务 AsyncTask
- 异步任务(AsyncTask)
- android 异步任务 AsyncTask
- Android AsyncTask 异步任务
- Android AsyncTask异步任务
- AsyncTask异步任务
- AsyncTask异步任务
- AsyncTask异步任务
- 异步任务AsyncTask
- 异步任务AsyncTask
- js日期转换函数
- android ndk开发支持64位时遇到undefined reference to `__system_property_get'
- JAVA利用HttpClient进行POST请求(HTTPS)
- JAVA入门基础知识小结
- 行业研究:服务机器人将成为新一代智能终端
- 异步任务AsyncTask
- /WEB-INF/views/login.jsp(2,61) Unable to read TLD "META-INF/c.tld" from JAR file "file:/D:/Program%
- 线程池剖析
- 判定200以内的数字的平方是否为回文数
- 手机号码段及归属地查询规则
- 关于Activity
- POJ 2488(DFS)
- (转)linux 屏幕亮度调整命令
- 工控机与西门子S7系列PLC数据交互组件(附测试样例记录文件)