全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android AsyncTask详解及使用方法

 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小时内与您取得联系。