一分钟让你学会使用Android AsyncTask
AsyncTask相信大多数朋友对它的用法都已经非常熟悉,这里记录一下主要是献给那些刚刚接触的Android 或者AsyncTask的同学们,高手请绕道。
AsyncTask类是Android1.5版本就开始引入了,使用它主要是用来完成一些异步任务的处理,废话不多说,直接上代码把。
/**
* AsyncTask<Params, Progress, Result>三个泛型参数
* Params
* 在执行AsyncTask时需要传入的参数,可用于在后台任务中使用。本例中第一个泛型参数指定为Void,表示在执行AsyncTask的时候不需要传入参数给后台任务。
* Progress
* 后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为进度单位。本例中第二个泛型参数指定为Integer,表示使用整型数据来作为进度显示单位。
* Result
* 当任务执行完毕后,如果需要对结果进行返回,则使用这里指定的泛型作为返回值类型。本例中第三个泛型参数指定为Boolean,则表示使用布尔型数据来反馈执行结果。
*/
class MyTask extends AsyncTask<Void, Integer, Boolean> {
/**
* 这个方法会在后台任务开始执行之间调用,用于进行一些界面上的初始化操作,
* 比如显示一个进度条对话框等。
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
} /**
* 这个方法中的所有代码都会在子线程中运行,我们应该在这里去处理所有的耗时任务。
* 任务一旦完成就可以通过return语句来将任务的执行结果进行返回,如果AsyncTask的
* 第三个泛型参数指定的是Void,就可以不返回任务执行结果。注意,在这个方法中是不
* 可以进行UI操作的,如果需要更新UI元素,比如说反馈当前任务的执行进度,可以调用
* publishProgress(Progress...)方法来完成。
*/
@Override
protected Boolean doInBackground(Void... params) {
publishProgress();
return null;
} /**
* 当在后台任务中调用了publishProgress(Progress...)方法后,这个方法就很快会被调用,
* 方法中携带的参数就是在后台任务中传递过来的。在这个方法中可以对UI进行操作,利用参
* 数中的数值就可以对界面元素进行相应的更新。
*/
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
} /**
* 当后台任务执行完毕并通过return语句进行返回时,这个方法就很快会被调用。返回的数据
* 会作为参数传递到此方法中,可以利用返回的数据来进行一些UI操作,比如说提醒任务执行
* 的结果,以及关闭掉进度条对话框等。
*/
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
} }
启动任务
new MyTask().execute();
一分钟让你学会使用Android AsyncTask的更多相关文章
- 10分钟学会搭建Android开发环境 Eclipse: The import android.support cannot be resolved
10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...
- android AsyncTask介绍(转)
android AsyncTask介绍 AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接 ...
- 10分钟 教你学会Linux/Unix下的vi文本编辑器
10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...
- Android AsyncTask异步加载WebAPI
之前做的程序一直存在很多问题,因为需要加载的Activity需要从网络加载数据.并没有完全正确的使用异步的方法去加载! 之前用的虽然是AsyncTask,但是在加载完成的时候还是并没有使用AsyncT ...
- Android -- AsyncTask 使用和缺陷
一.AsyncTask的基本用法 由于AsyncTask是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它.在继承时我们可以为AsyncTask类指定三个泛型参数,这三个参数的用途如下: ...
- 2分钟就能学会的【Google/百度搜索大法】了解一下?
之前我在知乎回答了「日常生活中有哪些十分钟就能学会并可以终生受用的技能」,现在也整理分享给公众号的朋友们. 作为一个入坑8年国际贸易的老阿姨,真心推荐[google搜索大法](同样适用于百度). 2分 ...
- 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)
大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...
- 5分钟让你学会用最高效的工具解析所有Json
如果你是一个Android开发工程师,学会解析Json字符串是你的必修课,本篇文章主要以实例的方式手把手教你怎么做,花五分钟时间阅读本篇文章你就可以学会解析所有的Json字符串啦. 准备: json字 ...
- Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池
前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...
随机推荐
- 1) Spring_HelloWorld
1. Spring Tool Suite™ 方式一:下载对应eclipse版本的文件,离线安装 4.4.2 springsource-tool-suite-3.6.4.RELEASE-e4.4.2-u ...
- SSH整合 第二篇 工程初建
SSH整合,第二篇. 创建工程 这里只是测试和理解hibernate.建立Java工程就好了. 1.hibernate-4.2.21.jar hibernate包下的required,即\hibern ...
- loadrunner提高篇 - 关联技术的经典使用
关联函数是一个查找函数,即是从HTML文件内容中查找需要的值,并将其保存在一个变量或数组中.换一个角度看,关联函数不单单可以匹配一些变化的值,同样可以匹配一些固定的内容,并将其保存到一个数据组,供后续 ...
- Mongodb 存储日志信息
线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误.警告.及用户行为等信息,通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题,但当产生大量的日志之后,要想从大量日志里挖 ...
- CAS实战の遇到的问题
1.客户端启动报错,报错信息如下: 严重: Exception starting filter CAS Single Sign Out Filter java.lang.IllegalArgument ...
- Delphi for iOS开发指南(1):在Mac上配置你的开发环境
http://cache.baiducontent.com/c?m=9d78d513d99516f11ab7cf690d678c3b584380122ba7a0020fd18438e4732b4050 ...
- mysql免安装版 安装配置 (转)
1. 下载MySQL Community Server 5.6.13 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Pr ...
- android应用搬家的实现
android手机上的应用搬家功能,具体的介绍和原理参考: 系统目录及应用搬家的研究 应用搬家的实现 这里主要是作为一个补充,因为上面两篇文章虽然讲的挺好的,但是给出的例子不能直接运行,还是需要一些准 ...
- NetCore入门篇:(五)Net Core项目使用静态文件
一.简介 1.Net Core默认无法访问静态文件,需要在Startup通过代码添加定义. 2.本文介绍两种静态文件目录实现方式. 二.启用默认目录 1.添加图片文件 2.测试访问结果(不能访问) 3 ...
- MVVM Light 新手入门(3) :ViewModel / Model 中定义“事件” ,并在View中调用 (无参数调用)
今天学习MVVM架构中“事件”的添加并调用,特记录如下,学习资料均来自于网络,特别感谢翁智华 的 利刃 MVVMLight 6:命令基础 在MVVM Light框架中,事件是WPF应用程序中UI与后台 ...