一个比较完整的自定义AsyncTask写成如下:

class DownloadTask extends AsyncTask<Void, Integer, Boolean> {@Overrideprotected void onPreExecute() {progressDialog.show(); //显示进度对话框}@Overrideprotected Boolean doInBackground(Void...params) {try {while (true) {int downloadPercent = doDownload(); //这是一个虚构的方法publishProgress(downloadPercent);if (downloadPercent >= 100) {break;}}} catch (Exception e) {return false;}return true;}@Overrideprotected void onProgressUpdate(Integer...values) {//在这里更新下载进度progressDialog.setMessage("Downloaded" + values[0] + "%");}@Overrideprotected void onPostExecute(Boolean result) {progressDialog.dismiss(); //关闭进度对话框//在这提示下载结果if (result) {Toast.makeText(context, "Download succeeded", Toast.LENGTH_SHORT).show();}}
}

使用AsyncTask的诀窍:在doInBackground()方法中去执行具体的耗时任务,在onProgressUpdate()方法中进行UI操作,在
onPostExecute()方法中执行一些任务的收尾工作。

转载于:https://www.cnblogs.com/Iamasoldier6/p/5048298.html

《第一行代码》学习笔记37-服务Service(4)相关推荐

  1. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  2. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  5. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  6. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  7. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  8. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

  9. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  10. 第一行代码学习笔记第四章——探究碎片

    知识点目录 4.1 碎片是什么 4.2 碎片的使用方式 * 4.2.1 碎片的简单用法 * 4.2.2 动态添加碎片 * 4.2.3 在碎片中模拟返回栈 * 4.2.4 碎片和活动之间进行通信 4.3 ...

最新文章

  1. TIOBE 9 月编程语言排行榜发布,C++ 增速最快,C++20 的功劳?
  2. 芯灵思Sinlinx A64开发板 Linux内核等待队列p
  3. boost::callable_traits的remove_varargs_t的测试程序
  4. Android基础总结(八)Service
  5. 卷积为什么如此强大?一文全解深度学习中的卷积
  6. 优秀学生专栏——孙珩发
  7. extundelete反删除总结
  8. Mybitis框架2016年1月3日
  9. 计算机网络—三种CSMA协议
  10. php判断长度函数是,php判断字符串长度 strlen()与mb_strlen()函数
  11. CF1157D N Problems During K Days(简单构造)
  12. 如何利用CustomFont+PS制作字体
  13. java catch中throw_Java中异常关键字throw和throws使用方式的理解
  14. html树状图怎么搜索节点,echarts2.* tree树形图节点点击事件和节点点击图标更改...
  15. 用shell打印正三角形_用shell命令绘制三角形
  16. python下的一个好用的日历库,支持农历和公历互转,四柱反查等功能
  17. 使用Matlab/Simulink进行电力电子控制设计
  18. 文理学院的数学计算机方向夏校,美国大学夏校.doc
  19. 芯片STC89C52 (宏晶STC)
  20. 包装盒设计软件测试自学,包装魔术师(折叠纸盒设计软件)3.0 官方安装

热门文章

  1. javascript 打造城市选择控件,兼容IE6以及以上,谷歌,Firefox
  2. 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇)
  3. Flutter AnimatedOpacity 实现透明度渐变动画效果
  4. Mr.J-- jQuery学习笔记(二十)--节点操作方法
  5. 增量式编码器定时器配置和速度计算的处理方法
  6. 冒泡排序算法的 JavaScript 实现
  7. 2015/8/7 卖出中国软件,卖早了;5只不同形态的三角形震荡股票
  8. 窗口最小化消息的解决之道
  9. 自定义用户控件显示属性分类、描述、默认值
  10. 使用 AudioContext restart 音频