Android学习笔记—第六章 Asynctask异步加载

第六章 Asynctask 异步加载

1.好处:不需要创建线程就可管理线程

缺点:步骤多

2.步骤:

(1)创建一个类继承Asynctask<xxx,xxx,xxx>;

三个泛型参数:

第一个:决定了execute()方法的传入值类型,决定了doInBackground()方法的传入值类型

第二个:决定了publishProgress()方法的传入值类型,决定了onProgressUpdate()方法的传入值类型

第三个:决定了doInBackground()方法的返回值类型,决定了onPostExecute()方法的传入值类型、

3.执行过程:

onPreExecute→→→doInBackground(子线程中)→→→onPostExecute

publishProgress→→→onProgressUpdate

4.泛型:

Java5.0之后的新特性,可变参数,类型一定,个数不定

例如:

static int add(Integer...c){

int sum=0;

for(int i=0;i<c.length;i++){

sum+=c[i];

}

return sum;

}

5.下载网络资源步骤:

//得到路径

String path = xxx;

//获取URL对象

URL url = new URL(path);

//打开链接

URLConnection urlConnection = url.openConnection();

//获取流

InputStream is = urlConnection.getInputStream();

//通过图片工厂转换得到Bitmap类型的对象

Bitmap bitMap = BitmapFactory.decodeStream(is);

//设置连接超时

urlConnection.setConnectTimeout(3000);

//设置读取超时

urlConnection.setReadTimeout(3000);

时间: 2024-10-21 10:49:26

Android学习笔记—第六章 Asynctask异步加载的相关文章

Android AsyncTask异步加载WebAPI

之前做的程序一直存在很多问题,因为需要加载的Activity需要从网络加载数据.并没有完全正确的使用异步的方法去加载! 之前用的虽然是AsyncTask,但是在加载完成的时候还是并没有使用AsyncTask内置的方法去处理.而已傻傻的在OnCreate中处理.结果还是要等待AsyncTask加载完成后,等待OnCreate执行完成后,才load到Activity.这样子给人的第一感觉就是卡机了一样! 果断重新再写,这次的代码真是大换血.首先还是选择把带分页ListView进行封装了一下. 1 i

Android Asynchronous Http Client--Android 开源的网络异步加载类

整理Android Asynchronous Http Client的使用 Android Asynchronous Http Client(AHC) 一个回调式的Android网络请求库 概括: AHC是基于Apache的HttpClient 库,所有的网络请求过程在UI线程之外进行,而回调是在Handler里面处理.也可以再Service或者后台程序里面使用,这个库会自动识别并在相应的Context进行处理. 特点: 异步发送HTTP请求,在回调函数中处理响应 HTTP请求过程不在UI线程进

Android图片管理组件(双缓存+异步加载)

转自:http://www.oschina.net/code/snippet_219356_18887?p=3#comments ImageManager2这个类具有异步从网络下载图片,从sd读取本地图片,内存缓存,硬盘缓存,图片使用动画渐现等功能,已经将其应用在包含大量图片的应用中一年多,没有出现oom Android程序常常会内存溢出,网上也有很多解决方案,如软引用,手动调用recycle等等.但经过我们实践发现这些方案,都没能起到很好的效果,我们的应用依然会出现很多oom,尤其我们的应用包

【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET

目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用service提供很多功能,例如利用Google Maps API,现在我们将聚焦在HTTP serice中. Android SDK提供HttpClient,和J2EE中的接口非常相似.最常用的就是HTTP GET和HTTP POST.相关内容也可以阅读Android学习笔记(四五):互联网通信-Htt

【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart

目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Post支持携带body,content-type为multipart.本次我们将尝试通过http post上传一个小文件. 建立测试环境 上传文件的测试环境很难找,下载了Tomcat,想装一个环境,打开后,发现忘得也差不多,要看帮助,比较麻烦,下面是我上传文件到189网盘抓的包,上传一个图片文件,整个

AsyncTask异步加载和HttpURLConnection网络请求数据

//获得网络数据    private void huodeshuju() { //这里是使用线程,已注释掉        /*new Thread(){            public void run() {                                try {                    URL url=new URL(urlPath);                    HttpURLConnection urlConnection=(HttpURL

【EasyUI学习-2】Easyui Tree的异步加载

作者:ssslinppp       1. 摘要 easyui相关的介绍可以上其官网或者百度去搜索,这里不做介绍. Easyui Tree的使用,官网或者easyui中文网站,也有相关介绍,但是官方提供的实例所使用的json是写死的,不是后台实时读取的.在实际的项目中,要显示的tree数据,一般都是从数据库中读取,然后通过通过ajax或者其他技术将tree的json数据发送到前台,然后显示. 本文将介绍easyui tree的异步加载,以及手动展开tree. 2. tree的相关介绍 上图是一个

[javase学习笔记]-7.4 构造函数的内存加载

这一节我们来说说构造函数在内存中是如何被加载的. 我们之前说过,构造函数只有创建对象时才会被调用并且只调用一次.那么在创建对象的过程中内存中的变化是什么样的呢? 我们接着上一节的Person类,我们分析 class Person { private String name; private int age; Person()//构造函数,分别为成员变量name和age赋固定的值 { name = "baby"; age = 1; System.out.println("per

学习Echart:(二)异步加载更新

这部分比较简单,对图表的异步加载和更新,其实只是一部获取数据然后通过setOption传入数据和配置而已. $.get('data.json').done(function (data) { myChart.setOption({ title: { text: '异步数据加载示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子&