所谓异步任务即异步执行,把一个耗时的任务放入另一个线程中去执行,由AsyncTask类管理。

下面给出一个测试程序,测试异步任务的执行,如果不使用异步执行会怎么样,利用异步机制又会怎么样。

本实例包含三个类:

1.模拟一个耗时任务的类,该类使得线程休眠5000毫秒,代码如下:

public class NetOperate {public void operator(){try {Thread.sleep(5000);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}}

2.这个类是异步机制的子类,重写其中的doInBackground方法,使得任务在异步线程中执行,代码如下:

//这里的参数Void并不是类型,而是代表抽象类
public class FirstAsyncTask extends AsyncTask<Void, Void, Void>{@Overrideprotected Void doInBackground(Void... params) {// TODO Auto-generated method stubNetOperate netOperate=new NetOperate();netOperate.operator();return null;}}

3.这个类是主线程的调用,代码如下:

public class MainActivity extends Activity {private Button button;;private Button button2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button=(Button)findViewById(R.id.button1);button2=(Button)findViewById(R.id.button2);button.setOnClickListener(new MyButton());button2.setOnClickListener(new MyButton());}private class MyButton implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.button1: net();break;case R.id.button2:log();break;default:break;}}}public void net(){/** 如果用一下注释的代码,则这两个操作都是在一个线程里运行,即主线程,* 当利用下面的代码时,用的是一个异步线程,互相不干扰*/
//      NetOperate netOperate=new NetOperate();
//      netOperate.operator();FirstAsyncTask firstAsyncTask=new FirstAsyncTask();firstAsyncTask.execute();}public void log(){Log.d("BruceZhang", "你好!!");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}

Android开发--AsyncTask异步任务(一)相关推荐

  1. Android开发--AsyncTask异步任务(二)

    一.什么是异步操作 异步操作是指把消耗时间的操作放在另一个线程内执行,变成两个线程独立并行执行的状态.通常涉及网络的操作大多数放在异步任务中. 二.异步任务AsyncTask 1.建立异步任务 pub ...

  2. Android之AsyncTask异步任务详解总结

    Android 多线程----AsyncTask异步任务详解 [正文] 本文将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多 ...

  3. android异步任务更新进度条,Android的AsyncTask异步任务浅析

    Android的AsyncTask异步任务浅析 实现原理 内部封装了2个线程池+1个Handler(InternalHandler),1个线程池SerialExecutor任务排队,一个线程池THRE ...

  4. Android开发之异步任务加载网络图片并存储在sdcard中(源代码分享)

    在MainActivity中的代码 package com.example.f02_sdcard02;import android.os.AsyncTask; import android.os.Bu ...

  5. 【Android】AsyncTask异步类

    一.关于AysncTask AsyncTask使得多线程编程更加简单,AsyncTask能在后台线程执行异步任务,并且在UI线程更新界面,而不再需要用户去操作Thread和Handler.AysncT ...

  6. Android 利用 AsyncTask 异步读取网络图片

    1.新建Android工程AsyncLoadPicture 新建布局文件activity_main.xml主界面为一个ListView 2.功能主界面MainActivity.java,主代码如下 p ...

  7. Android开发之异步消息处理机制AsyncTask

    转自:Android AsyncTask完全解析,带你从源码的角度彻底理解 另外一篇比较详细的博文:http://blog.csdn.net/liuhe688/article/details/6532 ...

  8. Android开发——异步任务中Activity销毁时的问题

    0.  前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment ...

  9. android asynctask异步处理抓取网页,Android处理异步耗时任务,AsyncTask使用教程

    原文链接:http://www.jufanshare.com/content/124.html 本教程附Demo:https://gitee.com/qwertiddler/AsyncTask.git ...

最新文章

  1. Ubuntu 14.04 64bit安装IPython
  2. 学习EF4的一些基础参考资料
  3. HDOJ--4821--String【弦hash】
  4. linux安装minikube(Ubuntu/deepin)
  5. base64补等号规则说明
  6. mysql安装 demo [linux centos7] [5.7.26]
  7. 蓝桥杯 ALGO-82 算法训练 输出米字形
  8. 【Codeforces 1426 D】Non-zero Segments,贪心,前缀和,数组子段统计
  9. 【毕设狗】【单片机毕业设计】基于单片机的智能垃圾桶设计-实物设计
  10. NBU备份Vmware
  11. c语言常量定义的数组初始化
  12. python 修改证件照的尺寸
  13. 投稿Springer旗下某中科院1区TOP期刊时间记载
  14. BiTree T 和 Bitree T 和 BitNode *T 和 T-lchild
  15. lab2 binary bomb 详解
  16. C语言入门——初识C语言
  17. win10正式版新功能介绍
  18. 工作4年从美团、360、陌陌、百度、阿里、京东面试程序员的回来感想
  19. createprocess函数的参数说明:
  20. linux写日志文件

热门文章

  1. md加密 16位 32位
  2. oracle-ords
  3. CYQ.Data V5 分布式自动化缓存设计介绍(二)
  4. esnext:最后一个参数后面也允许加逗号了
  5. Oracle 触发器使用实例
  6. ModelSim之命令行仿真入门 (step 2)
  7. Akka2使用探索1(Remoting)
  8. [转]海量查询的数据优化
  9. 《网管员必读——网络测试、监控和实验》试读样章下载
  10. A 元素[HTML 4.01]