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实例智能调用一次,否则会抛出异常

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

相关文章推荐

Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 之前,我们直接在activity中执行ht...

Android笔记----AsyncTask异步消息处理机制

引入: 还是那个问题:Android的单线程模型原则—只能在主线程更新UI. 如果要在非主线程中更新UI,除了用Handler之外,还有一种封装得很好的机制AsyncTask 源码解释: As...

Pro Android学习笔记(九六):AsyncTask(5):横竖屏切换问题

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/ 横竖屏切换的问题 在设备转动,进行横竖...

【Android学习笔记系列】AsyncTask的使用和介绍(获取网络图片与进度条实例)

什么是异步 首先我们要先知道什么是异步、什么是同步: 同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程,同步是阻塞模式。 异步交互:指发送一个请求,不需要等待返回,随时可...

Android开发笔记(四十九)异步任务处理AsyncTask

AsyncTask异步任务 Thread+Handler方式虽然能够实现多线程的通信处理,但是写起代码来颇为繁琐,所以Android提供了AsyncTask这样一个轻量级的异步任务类,其内部封装好Th...
  • aqi00
  • aqi00
  • 2016年01月15日 11:11
  • 1107

android 开发零起步学习笔记(二十一):AsyncTask的基本用法

AsyncTask的基本用法 原文:http://blog.csdn.net/abc5382334/article/details/17097633 在开发Android应用时必须遵守单线程模型的...
  • ingener
  • ingener
  • 2016年12月21日 16:37
  • 149

Android学习笔记之AsyncTask实现文件下载任务

(1)该文件下载主要演示异步任务下载图片 (2)布局代码如下:一个ImageView用于存放下载的图片,Button用于开始异步任务下载 ...

Android学习笔记(三二):线程:后台异步任务AsyncTask

去五金店买个钻,不是因为我们需要钻,我们只需需要孔,既然五金店无法买孔,退而求其次,买打孔的工具。同样的对于后台线程,我们真正需要的是能够在UI主线程外进行处理,Android提供一个让程序员编写后台...

android学习笔记(七)AsyncTask

AsyncTask类使得UI线程的使用更加方便和容易。它可以后台运行操作并且将结果 显示在UI线程上,而不需要去操作线程或者是handlers。 一个很好的例子比如进度条显示。 下面来看下用法。...
  • renero
  • renero
  • 2011年07月24日 16:34
  • 877

android开发笔记之网络编程—异步加载(AsyncTask)

看了前面的文章我们知道请求网络的几种方式:1.使用TCP协议和URL进行网络编程 a)基于TCP协议:ServerSocket,Socket b)基于URL:URL 和 URL...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 笔记之 AsyncTask
举报原因:
原因补充:

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