Android开发--AsyncTask异步任务(一)
所谓异步任务即异步执行,把一个耗时的任务放入另一个线程中去执行,由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异步任务(一)相关推荐
- Android开发--AsyncTask异步任务(二)
一.什么是异步操作 异步操作是指把消耗时间的操作放在另一个线程内执行,变成两个线程独立并行执行的状态.通常涉及网络的操作大多数放在异步任务中. 二.异步任务AsyncTask 1.建立异步任务 pub ...
- Android之AsyncTask异步任务详解总结
Android 多线程----AsyncTask异步任务详解 [正文] 本文将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多 ...
- android异步任务更新进度条,Android的AsyncTask异步任务浅析
Android的AsyncTask异步任务浅析 实现原理 内部封装了2个线程池+1个Handler(InternalHandler),1个线程池SerialExecutor任务排队,一个线程池THRE ...
- Android开发之异步任务加载网络图片并存储在sdcard中(源代码分享)
在MainActivity中的代码 package com.example.f02_sdcard02;import android.os.AsyncTask; import android.os.Bu ...
- 【Android】AsyncTask异步类
一.关于AysncTask AsyncTask使得多线程编程更加简单,AsyncTask能在后台线程执行异步任务,并且在UI线程更新界面,而不再需要用户去操作Thread和Handler.AysncT ...
- Android 利用 AsyncTask 异步读取网络图片
1.新建Android工程AsyncLoadPicture 新建布局文件activity_main.xml主界面为一个ListView 2.功能主界面MainActivity.java,主代码如下 p ...
- Android开发之异步消息处理机制AsyncTask
转自:Android AsyncTask完全解析,带你从源码的角度彻底理解 另外一篇比较详细的博文:http://blog.csdn.net/liuhe688/article/details/6532 ...
- Android开发——异步任务中Activity销毁时的问题
0. 前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment ...
- android asynctask异步处理抓取网页,Android处理异步耗时任务,AsyncTask使用教程
原文链接:http://www.jufanshare.com/content/124.html 本教程附Demo:https://gitee.com/qwertiddler/AsyncTask.git ...
最新文章
- Ubuntu 14.04 64bit安装IPython
- 学习EF4的一些基础参考资料
- HDOJ--4821--String【弦hash】
- linux安装minikube(Ubuntu/deepin)
- base64补等号规则说明
- mysql安装 demo [linux centos7] [5.7.26]
- 蓝桥杯 ALGO-82 算法训练 输出米字形
- 【Codeforces	1426	D】Non-zero Segments,贪心,前缀和,数组子段统计
- 【毕设狗】【单片机毕业设计】基于单片机的智能垃圾桶设计-实物设计
- NBU备份Vmware
- c语言常量定义的数组初始化
- python 修改证件照的尺寸
- 投稿Springer旗下某中科院1区TOP期刊时间记载
- BiTree T 和 Bitree T 和 BitNode *T 和 T-lchild
- lab2 binary bomb 详解
- C语言入门——初识C语言
- win10正式版新功能介绍
- 工作4年从美团、360、陌陌、百度、阿里、京东面试程序员的回来感想
- createprocess函数的参数说明:
- linux写日志文件