最近系统学习了关于异步数据加载的相关知识,之前在项目中,这一块不是由我负责,现在回顾一下,项目中没有用到数据缓存,即每次用户的请求都要去网络获取,网络不好时,加载慢或者加载不出来,测试人员提出该问题时,没有引起重视。之前我也经常会用到显示网络中获取的图片工具(其他同事编写),但并不理解其中的缘故。

这个例子具有很强的通用性,下载后以后再做异步数据加载,只需要根据需求少量修改即可。

直接下载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相关推荐

  1. Android高效异步图片加载框架

    概述 Android高效异步图片加载框架:一个高效的异步加载显示的图片加载框架,同时具备图片压缩,缓存机制等特性. 详细 代码下载:http://www.demodashi.com/demo/1214 ...

  2. flask+sqlite3+echarts3+ajax 异步数据加载

    结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...

  3. 异步数据加载和Tab选项卡

    开发工具与关键技术:VS echart和layui tab 作者:微凉之夏 撰写日期:2019年06月06日 在echarts入门示例中的数据是在初始化后,setOption中直接填入的,但是很多时候 ...

  4. Echarts使用心得总结——异步数据加载

    异步加载 Echarts的数据一般是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入.ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要使用 ...

  5. echarts异步数据加载和更新

    echarts中的数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入.ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuer ...

  6. android Q launcher 数据加载流程

    时间:2020/08/24 之前公司不允许csdn,笔记写在其它地方.最近整理过来 下一篇:launcher数据加载(二) 前言 androidQ和androidP上Launcher结构有很大区别. ...

  7. android studio上拉加载,AndroidStudio的PullToRefreshListView简单使用

    PullToRefreshListView的下载:https://github.com/chrisbanes/Android-PullToRefresh 1.先将其中的library倒入到Module ...

  8. echarts异步数据加载MySQL_微信小程序 Echarts 异步数据更新

    微信小程序 Echarts 异步数据更新的练习,被坑了很多次,特作记录. 作者:罗兵 地址:https://www.cnblogs.com/hhh5460/p/9989805.html 0.效果图 1 ...

  9. echarts中饼图的异步数据加载绘制

    ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行,但是从后台异步获取数据后,需要在前台 ...

最新文章

  1. python学生管理系统教学_Python项目:学生信息管理系统(完整版)
  2. 2013首部著作封面抢先曝光
  3. WCF-学习笔记概述之计算服务(1)
  4. Mint-UI 的 DatetimePicker 日期时间插件的安装与使用
  5. C++中struct和class关键字的区别
  6. 常见的多变查询,和遇到的一些坑。。。。
  7. 关于numpy mean函数的axis参数
  8. Spring Boot基础学习笔记23:用户自定义授权管理
  9. matlab机器学习安装,机器学习(一):学习环境搭建
  10. nyoj_49_开心的小明_201403161133
  11. 如何批量下载《大数据分析实用技术案例》的学习视频
  12. PL/SQL 包头和包体
  13. 蓝牙4.0BLE 芯片cc2540和cc2541 128x64 oled显示屏驱动
  14. 华为鸿蒙星星之火,星星之火 数码视讯支持华为鸿蒙发布会全球直播
  15. Win10任务栏卡死,无响应,一直转圈,点不动
  16. Oracle中以insert values的形式同时插入多条记录
  17. ps人物素描及黑白上色
  18. Euraka服务注册篇
  19. Java——IDEA
  20. 前端与移动开发----微信小程序----小程序(四)

热门文章

  1. VM VirtualBox安装rhel-server-6.5-x86_64系统
  2. php程序设计英文版书,PHP程序设计 ( 李英梅,刘新飞) pdf扫描版
  3. 早睡早起使人健康、富裕又聪明
  4. C# Process.Start()方法详解
  5. 学习UI设计必知的防雷小知识:11例UI设计规范模板
  6. 2022年全球市场儿童三轮车总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. 智慧校园管理系统 前台任意文件上传漏洞
  8. 数论 --- 约数和定理公式推导、最大公约数、欧几里得算法
  9. SeqGAN代码解析
  10. 《通信技术导论(原书第5版)》——1.6 广域网加速和优化