android异步任务详解 AsynTask
来源:互联网 发布:陈放怎么死的知乎 编辑:程序博客网 时间:2024/09/21 09:27
android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。
1、AsynTask类结构
asysTask类主要用到的几个内部回调函数有:
正是这几个回调函数构成了AsynTask类的使用逻辑结构。
注意:每个AsynTask子类必须至少复写doInBackGround()方法。
2、回调逻辑关系
调用关系如下图:
1>主线程调用AsynTask子类实例的execute()方法后,首先会调用onPreExecute()方法。onPreExecute()在主线程中运行,可以用来写一些开始提示代码。
2>之后启动新线程,调用doInBackground()方法,进行异步数据处理。
3>处理完毕之后异步线程结束,在主线程中调用onPostExecute()方法。onPostExecute()可以进行一些结束提示处理。
3、各个函数间数据的传递
通过上面的调用关系,我们就可以大概看出一些数据传递关系。如下:
execute()向doInBackground()传递。
doInBackground()的返回值会传递给onPostExecute()。
publishProgress()向progressUpdate()传递。
传递的数据都是对应类型的数组,数组都是可变长的哦。可以根据具体情况使用。
4、实例:
看了上面的内容,应该对asynTask类的使用逻辑有了了解。下面写一个简单的例子。
例子功能很简单:activity中有1个textView和botton。当点击botton时,异步改变textView的值,并且在相应的回调函数执行时,用System.out.println()输出值。
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
</LinearLayout>
java代码:
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class AnsyTestActivity extends Activity {
}
5、总结
- 【AsynTask】android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- Android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- Android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解 AsynTask
- android异步任务详解asyntask
- android异步任务详解 AsynTask
- android异步任务asyntask详解
- android异步任务详解 AsynTask
- Cocos2d-x3.0模版容器详解之三:cocos2d::Value
- AD9打印丝印层
- ABAP程序编写过程中怎么提高程序执行效率六
- 黑马程序员-Java基础知识总结
- 加密算法 java实现
- android异步任务详解 AsynTask
- 122页第10题
- s3c2410 board.c分析
- 读懂/proc/cpuinfo
- MyEclipse 快捷键大全
- 3-15(加一个数排序)
- 第三章 第十题
- 李红霞作业第三章15题
- Mac NDK安装教程