Android之Lru缓存
2015-11-12 15:13
483 查看
1、初学者可以将Lru缓存理解成一个Map集合,底层是LinkedHashMap。特点:以空间换时间
使用步骤:
(1)创建对象
(2)保存对象进内存
(3)取出目标对象
public void method() {
int maxMemory = (int) Runtime.getRuntime().maxMemory(); // 获取设备的最大内存
int cacheSize = maxMemory / 4; // 一版设置缓存为内存的1/4
mCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap value) { // 每次有内容进缓存,都会调用此方法
return value.getByteCount(); // 返回该对象的大小,告知内存管理器
}
};
}
public void addBitmapToCache(String url, Bitmap value) {
if (getBitmapFromCache(url) == null)
mCache.put(url, value);
}
public Bitmap getBitmapFromCache(String url) {
return mCache.get(url);
}
只需要在合适的位置调用上述两个方法即可
使用步骤:
(1)创建对象
(2)保存对象进内存
(3)取出目标对象
public void method() {
int maxMemory = (int) Runtime.getRuntime().maxMemory(); // 获取设备的最大内存
int cacheSize = maxMemory / 4; // 一版设置缓存为内存的1/4
mCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap value) { // 每次有内容进缓存,都会调用此方法
return value.getByteCount(); // 返回该对象的大小,告知内存管理器
}
};
}
public void addBitmapToCache(String url, Bitmap value) {
if (getBitmapFromCache(url) == null)
mCache.put(url, value);
}
public Bitmap getBitmapFromCache(String url) {
return mCache.get(url);
}
只需要在合适的位置调用上述两个方法即可
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories