Android studio异步数据加载ListView+Adapter+AsyncTask
最近系统学习了关于异步数据加载的相关知识,之前在项目中,这一块不是由我负责,现在回顾一下,项目中没有用到数据缓存,即每次用户的请求都要去网络获取,网络不好时,加载慢或者加载不出来,测试人员提出该问题时,没有引起重视。之前我也经常会用到显示网络中获取的图片工具(其他同事编写),但并不理解其中的缘故。
这个例子具有很强的通用性,下载后以后再做异步数据加载,只需要根据需求少量修改即可。
直接下载Demo
需求:
1) ListView 横向的item展示用户的 头像和 姓名;
2) Adapter的显示中缓存View并优化性能;
3) 将已经加载的图片加入缓存目录(首选SD卡);
4) 异步加载图片;
5) 关闭Activity后删除缓存的内容。
6) 从http中获取xml数据,并解析成List<person>数据<Web端提供XMl数据>
技术需求的相关解释:
1、Adapter的显示中缓存View,是对convertView的重用。
2、Adapter优化性能,使用Holder可以避免每次调用getView时都会重新运行findViewById(),降低系统性能。
3、缓存图片至SD卡:如果image图片内容太多,缓存在内存中会耗用过多的手机内存。
4、AsyncTask的使用:AsyncTask可以限制开启线程的条数(线程池),避免使用Thread+Handler 造成的有多少条目就要开启多少线程的情况(异步加载图片,需要开启子线程,如果不是异步加载图片,会很容易导致应用无响应的情况)。
注意:
本文中涉及到的图片及person.xml文件已经打包到该项目的根目录下,你如果要使用到你的项目中,需要修改url地址,我是采用的本地Tomcat,并且将images 和 person.xml放在web端代码的根目录下,直接访问的。实际的应用中,web端一般是从数据库中读取数据,通过Servlet方式,将响应返回给客户端。
最终效果:
Sd卡中的目录及文件:
Android studio异步数据加载ListView+Adapter+AsyncTask相关推荐
- Android高效异步图片加载框架
概述 Android高效异步图片加载框架:一个高效的异步加载显示的图片加载框架,同时具备图片压缩,缓存机制等特性. 详细 代码下载:http://www.demodashi.com/demo/1214 ...
- flask+sqlite3+echarts3+ajax 异步数据加载
结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...
- 异步数据加载和Tab选项卡
开发工具与关键技术:VS echart和layui tab 作者:微凉之夏 撰写日期:2019年06月06日 在echarts入门示例中的数据是在初始化后,setOption中直接填入的,但是很多时候 ...
- Echarts使用心得总结——异步数据加载
异步加载 Echarts的数据一般是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入.ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要使用 ...
- echarts异步数据加载和更新
echarts中的数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入.ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuer ...
- android Q launcher 数据加载流程
时间:2020/08/24 之前公司不允许csdn,笔记写在其它地方.最近整理过来 下一篇:launcher数据加载(二) 前言 androidQ和androidP上Launcher结构有很大区别. ...
- android studio上拉加载,AndroidStudio的PullToRefreshListView简单使用
PullToRefreshListView的下载:https://github.com/chrisbanes/Android-PullToRefresh 1.先将其中的library倒入到Module ...
- echarts异步数据加载MySQL_微信小程序 Echarts 异步数据更新
微信小程序 Echarts 异步数据更新的练习,被坑了很多次,特作记录. 作者:罗兵 地址:https://www.cnblogs.com/hhh5460/p/9989805.html 0.效果图 1 ...
- echarts中饼图的异步数据加载绘制
ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行,但是从后台异步获取数据后,需要在前台 ...
最新文章
- python学生管理系统教学_Python项目:学生信息管理系统(完整版)
- 2013首部著作封面抢先曝光
- WCF-学习笔记概述之计算服务(1)
- Mint-UI 的 DatetimePicker 日期时间插件的安装与使用
- C++中struct和class关键字的区别
- 常见的多变查询,和遇到的一些坑。。。。
- 关于numpy mean函数的axis参数
- Spring Boot基础学习笔记23:用户自定义授权管理
- matlab机器学习安装,机器学习(一):学习环境搭建
- nyoj_49_开心的小明_201403161133
- 如何批量下载《大数据分析实用技术案例》的学习视频
- PL/SQL 包头和包体
- 蓝牙4.0BLE 芯片cc2540和cc2541 128x64 oled显示屏驱动
- 华为鸿蒙星星之火,星星之火 数码视讯支持华为鸿蒙发布会全球直播
- Win10任务栏卡死,无响应,一直转圈,点不动
- Oracle中以insert values的形式同时插入多条记录
- ps人物素描及黑白上色
- Euraka服务注册篇
- Java——IDEA
- 前端与移动开发----微信小程序----小程序(四)
热门文章
- VM VirtualBox安装rhel-server-6.5-x86_64系统
- php程序设计英文版书,PHP程序设计 ( 李英梅,刘新飞) pdf扫描版
- 早睡早起使人健康、富裕又聪明
- C# Process.Start()方法详解
- 学习UI设计必知的防雷小知识:11例UI设计规范模板
- 2022年全球市场儿童三轮车总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 智慧校园管理系统 前台任意文件上传漏洞
- 数论 --- 约数和定理公式推导、最大公约数、欧几里得算法
- SeqGAN代码解析
- 《通信技术导论(原书第5版)》——1.6 广域网加速和优化