Android 笔记之 AsyncTask

原创 2016年08月30日 23:17:53

AsyncTask

很多时候,需要异步执行任务,例如更新UI必须在主线程,internet任务必须在单独线程,
所以,从网上读取图片,然后显示,这么一个很简单的任务,就必须使用异步才能完成。

有一个简单的执行异步的类叫AsyncTask,提供一些便利的方法来执行异步任务。

  1. 建立一个自定义类,继承AsynkTask
  2. 覆盖类中的方法,以实现功能(具体如下)
  3. 在UI线程中创建该自定义类的实例,然后调用excute()方法
  4. 如果需要手动退出,调用cancel()方法
class MyAsync extends AsyncTask<Integer,Integer,String> {
    TextView textView;
    ImageView imageView;
    ProgressBar progressBar;

    public MyAsync(TextView tv,ImageView iv,ProgressBar pb) {
        this.textView = tv;
        this.imageView = iv;
        this.progressBar = pb;
    }

    @Override
    protected String doInBackground(Integer... integers) {
        return String.valueOf(integers[0]);
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);

        progressBar.setProgress(50);
        textView.setText(s);
    }
}

如上所示,这里面有3个主要方法
doinbackground,就是在新线程实现功能的方法,返回值就是需要获得的内容
onprogressupdate,就是在上述方法可能是一个很耗时的方法,这里可以用来更新UI显示运行进度,
所以里面可以设置一些在UI上显示进度的功能,自动调用。
onpostexcute,就是第一个方法在运行结束以后调用的,参数就是第一个方法的返回值。

很好理解吧。

一个AsyncTask实例智能调用一次,否则会抛出异常

版权声明:转载需标注出处和作者

Android网络编程之使用HttpClient批量上传文件(二)AsyncTask+HttpClient并实现上传进度监听

我曾在《Android网络编程之使用HttpClient批量上传文件》一文中介绍过如何通过HttpClient实现多文件上传和服务器的接收。在上一篇主要使用Handler+HttpClient的方式实...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014年11月03日 19:12
  • 8981

Android实现弱引用AsyncTask,将内存泄漏置之度外。

AsyncTask可谓是在Android中隐藏很深,曾经叱咤风云的功夫级人物。它的存在让网络和UI的通信变得异常简单和轻松。AsyncTask使用上的简单也得以让很多开发者青睐。一般情况下,Async...
  • u013718120
  • u013718120
  • 2016年11月04日 11:50
  • 2877

android 取消AsyncTask继续运行的解决方案

问题 当进入一个详细页面,这时程序会弹出一个对话框加载网络数据,可是发现用户经常因为数据加载慢,就快速的退出这个页面,这样反复来回几次后,发现AsyncTask不再继续加载,而是慢慢的等待,查了下个...
  • u011467537
  • u011467537
  • 2015年12月08日 10:25
  • 1766

Android之AsyncTask的内存泄露问题

AsyncTask是Android提供的一种用于异步处理数据的异步类,使用AsyncTask可以不用直接使用Thread和Handler来处理后台操作。AsyncTask被引入到Android中就被贴...
  • LoveYaozu
  • LoveYaozu
  • 2016年04月25日 22:41
  • 2822

Android AsyncTask 源码解析

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38614699,本文出自:【张鸿洋的博客】1、概述相信大家对AsyncTask都不...
  • lmj623565791
  • lmj623565791
  • 2014年08月18日 09:10
  • 29119

Android性能优化之AsyncTask

AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合。其实AsyncTask并不是那么好,甚至有些糟糕。本文我会讲AsyncTask会引起哪些问题,如何修复这些问题,并...
  • u014651216
  • u014651216
  • 2016年03月03日 13:14
  • 684

Android之AsyncTask的使用(二)之文件下载

声明: 本人菜鸟一枚, 本博客是本人自学的内容, 适用于初学者, 不喜勿喷, 谢谢大家下载案例 AsyncTask准则 通过上一篇博客我们学习到了AsyncTask的主要作用, 那今天就写一个实际...
  • u013144863
  • u013144863
  • 2016年07月07日 22:41
  • 1310

源码解析Android中AsyncTask的工作原理

在之前的博客《Android中AsyncTask使用详解》中我们提到AsyncTask是对Thread和Handler的组合包装,本文将通过解析的方式让大家了解AsyncTask的工作原理。Async...
  • sunqunsunqun
  • sunqunsunqun
  • 2016年02月17日 23:03
  • 9990

Android AsyncTask几个注意事项

CSDN上的这个系列文章《Android异步处理系列文章索引》对AsyncTask讲解的很清楚,特别是其中的几个例子特别好。最近在在做一个Android应用开发,都是用AsyncTask来完成后台任务...
  • Lu_Ca
  • Lu_Ca
  • 2017年06月05日 15:22
  • 313

AsyncTask和一个小例子

本节引言: 本节给大家带来的是Android给我们提供的一个轻量级的用于处理异步任务的类:AsyncTask,我们一般是  继承AsyncTask,然后在类中实现异步操作,然后将异步执行的进度...
  • xiangyong_1521
  • xiangyong_1521
  • 2016年01月14日 11:22
  • 716
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 笔记之 AsyncTask
举报原因:
原因补充:

(最多只允许输入30个字)