Android AsyncTask详解及使用方法

简介:
AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。
AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.
一、如果想自定义一个AsyncTask,可以写一个类,继承AsyncTask。
eg: 、
//第一个参数为doInBackground中传入的类型,第二个为doInBackground中更新的参数的类型,第三个为doInBackground完成后传出的参数。
class MyAsyncTask extends AsyncTask<String, Integer, String> { . . .}
注意有一个方法必须实现,就是
protected String doInBackground(String... params) { . . . }
一般来说,如果自定义的AsyncTask只针对一个Activity使用的话(跟Adapter差不多),那么推荐使用匿名内部类。
如果是在不同的类都需要调用的话,那么要把自定义的AsyncTask写在一个新类里面,并且需要在定义的AsyncTask中写一个完成的回调。
二、使用方法:
MyAsyncTask myAsyncTask = new MyAsyncTask(); //参数即为doInBackground中传入的参数。 myAsyncTask.execute(“Hello”);
三、停止正在执行的task的方法:
可以参考此目录下的 “AsyncTask各方法调用示例及详解”
四、必看详解:
要使用AsyncTask工作我们要提供三个泛型参数,并重载几个方法(至少重载一个)。
AsyncTask定义了三种泛型类型 Params,Progress和Result:
Params 启动任务执行的输入参数,比如HTTP请求的URL。
Progress 后台任务执行的百分比。
Result 后台执行任务最终返回的结果,比如String。
使用过AsyncTask 的同学都知道一个异步加载数据最少要重写以下这两个方法:
doInBackground(Params…) 后台执行,比较耗时的操作都可以放在这里。注意这里不能直接操作UI。此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间。在执行过程中可以调用public publishProgress(Progress…)来更新任务的进度。
onPostExecute(Result) 相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI。 此方法在主线程执行,任务执行的结果作为此方法的参数返回
有必要的话你还得重写以下这三个方法,但不是必须的:
onProgressUpdate(Progress. . .) 在publishProgress方法被调用后,可以使用进度条增加用户体验度。 此方法在主线程执行,用于显示任务执行的进度。
onPreExecute() 这里是最终用户调用Excute时的接口,当任务执行之前开始调用此方法,可以在这里显示进度对话框。
onCancelled() 用户调用取消时,要做的操作
使用AsyncTask类,以下是几条必须遵守的准则:
1.Task的实例必须在UI thread中创建;
2.execute方法必须在UI thread中调用;
3.不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...),onProgressUpdate(Progress...)这几个方法;
4.该task只能被执行一次,否则多次调用时将会出现异常;
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# AsyncTask
# AsyncTask详解
# AsyncTask使用方法
# Android 使用AsyncTask实现多线程断点续传
# Android 使用AsyncTask实现断点续传
# Android 使用AsyncTask实现多任务多线程断点续传下载
# 详解Android 中AsyncTask 的使用
# Android多线程AsyncTask详解
# Android中使用AsyncTask实现下载文件动态更新进度条功能
# Android AsyncTask实现异步处理任务的方法详解
# Android带进度条的下载图片示例(AsyncTask异步任务)
# 浅谈Android中AsyncTask的工作原理
# 自定义
# 重写
# 可以使用
# 几个
# 是在
# 在这里
# 放在
# 第一个
# 在这
# 推荐使用
# 要把
# 这两个
# 可以通过
# 希望能
# 要做
# 第二个
# 三种
# 可以直接
# 还得
# 有必要
相关文章:
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
建站之星如何助力企业快速打造五合一网站?
如何在IIS7中新建站点?详细步骤解析
宝塔Windows建站如何避免显示默认IIS页面?
如何实现建站之星域名转发设置?
如何在IIS中新建站点并配置端口与物理路径?
如何在橙子建站上传落地页?操作指南详解
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
独立制作一个网站多少钱,建立网站需要花多少钱?
C#怎么使用委托和事件 C# delegate与event编程方法
怀化网站制作公司,怀化新生儿上户网上办理流程?
建站10G流量真的够用吗?如何应对访问高峰?
如何通过西部建站助手安装IIS服务器?
如何用IIS7快速搭建并优化网站站点?
建站之星安装后界面空白如何解决?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何快速查询域名建站关键信息?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何在七牛云存储上搭建网站并设置自定义域名?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何用好域名打造高点击率的自主建站?
css网站制作参考文献有哪些,易聊怎么注册?
如何高效搭建专业期货交易平台网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
Swift中swift中的switch 语句
建站之星安装步骤有哪些常见问题?
如何构建满足综合性能需求的优质建站方案?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
如何在阿里云高效完成企业建站全流程?
如何零基础开发自助建站系统?完整教程解析
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
中山网站制作网页,中山新生登记系统登记流程?
企业微网站怎么做,公司网站和公众号有什么区别?
如何通过FTP服务器快速搭建网站?
网站app免费制作软件,能免费看各大网站视频的手机app?
如何在万网ECS上快速搭建专属网站?
如何用景安虚拟主机手机版绑定域名建站?
,网站推广常用方法?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何快速查询网址的建站时间与历史轨迹?
微课制作网站有哪些,微课网怎么进?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
Bpmn 2.0的XML文件怎么画流程图
山东网站制作公司有哪些,山东大源集团官网?
教学论文网站制作软件有哪些,写论文用什么软件
?
如何在阿里云ECS服务器部署织梦CMS网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。