远程图片获取和本地缓存

Android 之 远程图片获取和本地缓存

蓝咒 提交于 2019-12-07 11:56:29
概述 对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用完了,等用户发现是你的应用消耗掉了他手机流量的话,那么可想而知你的应用将面临什么样的命运。 另外一个问题就是加载速度,如果应用中图片加载速度很慢的话,那么用户同样会等到崩溃。 那么如何处理好图片资源的获取和管理呢? 异步下载 本地缓存 异步下载 大家都知道,在android应用中UI线程5秒没响应的话就会抛出无响应异常,对于远程获取大的资源来说,这种异常还是很容易就会抛出来的,那么怎么避免这种问题的产生。在android中提供两种方法来做这件事情: 启动一个新的线程来获取资源,完成后通过Handler机制发送消息,并在UI线程中处理消息,从而达到在异步线程中获取图片,然后通过Handler Message来更新UI线程的过程。 使用android中提供的AsyncTask来完成。 具体的做法这里就不介绍了,查下API就可以了,或者是google、baidu下。这里主要来说本地缓存。 本地缓存 对于图片资源来说,你不可能让应用每次获取的时候都重新到远程去下载(ListView),这样会浪费资源,但是你又不能让所有图片资源都放到内存中去(虽然这样加载会比较快),因为图片资源往往会占用很大的内存空间