Android之AsyncTask的使用(一)之简单使用
2016-07-07 16:15
483 查看
声明: 本人菜鸟一枚, 本博客是本人自学的内容, 适用于初学者, 不喜勿喷, 谢谢大家
简单介绍
首先, 我们需要实现一个类, 继承自AsyncTask,. 每个方法的的用法都在代码注释中有
需要注意的是, 模板参数: AsyncTask< Params, Progress, Result >, 这几个参数对应的是哪几个
在Activity中调用方法
效果图
座右铭: 少说话, 多做事
简单介绍
简单介绍
我们通过一个例子来说明该AsyncTask的使用方法:首先, 我们需要实现一个类, 继承自AsyncTask,. 每个方法的的用法都在代码注释中有
需要注意的是, 模板参数: AsyncTask< Params, Progress, Result >, 这几个参数对应的是哪几个
/** * 通过一个AsyncTask实现一个异步任务 * 模板参数: AsyncTask<Params, Progress, Result> */ private static class MyAsyncTask extends AsyncTask<String, Integer, String> { private MainActivity activity; public MyAsyncTask(MainActivity activity) { this.activity = activity; } /** * 执行任务支持触发的方法, 可以在该方法中做一些初始化工作 */ @Override protected void onPreExecute() { super.onPreExecute(); activity.info.setText("开始执行....."); } /** * 执行后台任务的方法 * 在子线程中执行, 不能在该方法中访问UI组件 * * @param params * @return */ @Override protected String doInBackground(String... params) { for (int i = 0; i < 10; i++) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(i); publishProgress(i);//更新进度 } return "success"; } /** * 更新进度值 * * @param values */ @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); activity.info.setText("当前的进度为: " + values[0]); } /** * doInBackground后执行的方法 * * @param s */ @Override protected void onPostExecute(String s) { super.onPostExecute(s); activity.info.setText(s); } }
在Activity中调用方法
public void startMyAsyncTask(View view) { new MyAsyncTask(this).execute(); }
效果图
座右铭: 少说话, 多做事
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories