AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用
对于异步操作的原理我就不讲了。在这我着重讲怎么使用异步操作的doinbackground onProgressUpdate onCancelled onPostExecute这四个方法
doinbackground 我的理解效果相当于Thread里面的run。这样理解就easy多了,由于大家可能对Thread都非常熟悉,你能够把你想要首先处理的事物放在这里,可是有非常多人就会在这里更新ui操作。这是不能够的 ,要更新ui操作我们就要讲到onPostExecute这种方法啦
onPostExecute我们把它先override 出来看看他的结构
@Override
protected void onPostExecute(List<GovernmentInstitutionBean> result) {}
我们能够看到方法里面有一个result參数,类型是自定义的,那么这个result是从哪里传来的呢,没错了,通过doinbackground处理将结果返回给
onPostExecute方法result接收。在这种方法里面更新ui操作。List这个类型也不是凭空而来。而是在doinbackground方法里面也要设置
首先你得把方法的返回类型改一下
protected List<GovernmentInstitutionBean> doInBackground(Void... arg0) {
然后你得把类的參数改一下
class Task1 extends AsyncTask<Void, Void, List<GovernmentInstitutionBean>>
在doinbackground方法里面有个return 把你想要返回的数据return
override onPostExecute方法自然就能接收到了
说到这里你应该会简单的使用异步操作了,假设你还想要对它更细化的控制。异常的处理那么 onProgressUpdate onCancelled 这两个方法就呼吁而出了
onProgressUpdate 就是在你正在进行异步操作的时候提示用户你正在操作,让你的应用体验更加好,那么这种方法的使用也非常easy
首先你得覆盖它
@Overrideprotected void onProgressUpdate(Void... values) {// TODO Auto-generated method stub}
然后你得触发它
publishProgress();
在你想要触发正在处理的地方添上即可,至于你在onProgressUpdate里面作什么,一般都是弹窗,我这里是用progressdialog提示正在载入,那么就是这种
@Overrideprotected void onProgressUpdate(Void... values) {// TODO Auto-generated method stubpd = ProgressDialog.show(IndustrialPark_Activity.this, "提示信息","正在载入…");}
在doinbackground方法一開始就弹出正在载入
protected List<GovernmentInstitutionBean> doInBackground(Void... arg0) {// TODO Auto-generated method stubtry {publishProgress();................}
那么这里要注意的是,假设载入成功的话就会跳到onpostexcute方法里面,假设载入失败的话呢。那么我们要让它跳到oncancelled方法里面,我们try catch一下doinbackground方法里面的处理,在catch里面加上
cancel(true);
这句代码,不管跳到哪都要记得你的pd还没消失呢。所以在两个方法里面都要写上让它消失的代码handler。sendmeesage…();
那么整个流程就讲的差点儿相同了。喜欢的请点赞,评论。不喜勿喷。
转载于:https://www.cnblogs.com/yfceshi/p/7294396.html
AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用相关推荐
- 【Android】AsyncTask异步类
一.关于AysncTask AsyncTask使得多线程编程更加简单,AsyncTask能在后台线程执行异步任务,并且在UI线程更新界面,而不再需要用户去操作Thread和Handler.AysncT ...
- AsyncTask工作机制简介
昨天写的图片的三级缓存,假设有兴趣,能够去看下,浅谈图片载入的三级缓存原理(一) http://blog.csdn.net/wuyinlei/article/details/50606455 在里面我 ...
- android AsyncTask 的分析与运用
线程 在Android当中,通常将线程分为两种,一种叫做Main Thread,除了Main Thread之外的线程都可称为Worker Thread. 当一个应用程序运行的时候,Android操作系 ...
- AsyncTask 很好
一.基础篇 1)UI线程概念 Android为单线程模型.当一个程序第一次启动时,Android会自动创建一个对应的主线程(Main Thread).它负责把事件分派到相应的控件,用于用户与Andro ...
- 多线程之 AsyncTask 使用详解和从源码中深入理解 AsyncTask 机制
前言 AsyncTask是Android提供的一个助手类,它对Thread和Handler进行了封装,方便我们使用: Android之所以提供AsyncTask这个类,就是为了方便我们在后台线程中执行 ...
- Android攻城狮AsyncTask
构建AsyncTack子类的参数 AsyncTask<Params,Progress,Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数: para ...
- Android面试必备知识点总结
本文原文(MarkDown)链接:https://github.com/DmrfCoder/interview/blob/master/Android/Android.md 文章目录 Android的 ...
- Android实现MQTT客户端
java代码 package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import andr ...
- Android中 AsyncTask
Android AsyncTask 在程序处理中必然会遇上耗时的操作,如访问网络,下载数据,访问数据库等,如何存在耗时的操作 又不能影响界面显示交互. 在某些耗时可以控制的情况下,我们可以分批操作,对 ...
最新文章
- Nginx+FastCGI运行原理
- 第十一届蓝桥杯大赛软件赛省赛 C/C++ 大学B组
- 【论文解读】解读TRPO论文,深度强化学习结合传统优化方法
- html布局基础,HTML 布局 - HTML 基础教程
- 荣耀Magic4 Pro延迟上市:全新一代LTPO超级四曲面屏加持
- python 3.6.5安装教程_Ubuntu16.04安装python3.6.5详细步骤
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
- [msi]Cannot open database file. System error -2147287035
- 实现滑动分页(微博分页方式)
- 【爬虫】selenium动态页面请求与模拟登录知乎
- 初识Memcache之安装与测试
- 麒麟V10系统密码策略修改
- 利用git进行word文档的版本管理
- Unity用代码将多张图片合并为一张图片
- IDEA中Python使用url时报错:Traceback (most recent call last)
- MongoDB:常见的面试题和答案
- BT下载伤硬盘的解决办法
- 使用BAT脚本批量修改文件名的方法
- Spark之spark VS MR
- 数据库插入大量数据时不要忘记先删除索引(小技巧)
热门文章
- ClientAbortException 异常
- 【转】left join 和 left outer join 的区别
- 利用Lucene.net搭建站内搜索(3)---创建索引
- android builder布局方式,android – AlertDialog.Builder与自定义布局和EditText;无法访问视图...
- 循环练习题:小球下落
- python学习方法_十二种学习Python的方法
- 业务分析岗所需具备的技能_成功的业务分析师需要具备的3种技能
- jsoup爬虫技术精通_精通业务的同时保持技术的3种方法
- github开源项目_GitHub项目分析,3D打印义肢和更多开源新闻
- duckduckgo 国内_DuckDuckGo的Instant Answers项目的7课