当前位置: 首页 > 知识库问答 >
问题:

Volley的磁盘缓存内存不足

洪飞龙
2023-03-14

在我的Android应用程序中,我使用Volley在自定义列表视图中加载图像。

当我多次刷新(删除所有项目并加载tiems)listview时,我的应用程序就会被这条消息杀死

我该怎么修好它?

共有1个答案

潘琨
2023-03-14

我在将图像加载到ListView时遇到了一个非常类似的问题。看来你必须自己处理从缓存中提取。

下面是我在公共视图getView(int position,View convertView,ViewGroup parent)适配器方法中的实现:

Bitmap cachedBitmap = imageCache.getBitmap(item.getPhotoUrl());
if (cachedBitmap != null)
{
    holder.photo.setImageBitmap(cachedBitmap);
}
else {
    ImageLoader imageLoader = new ImageLoader(Volley.newRequestQueue(this.context), imageCache);
    imageLoader.get(item.getPhotoUrl(), new ImageLoader.ImageListener() {
        @Override
        public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
            if (item.getPhotoUrl() != null && response.getBitmap() != null)
                imageCache.putBitmap(item.getPhotoUrl(), response.getBitmap());
        }

        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });

    //This is a custom imageview, you can create your own implementation for loading the image url to the imageview
    holder.photo.setImageUrl(item.getPhotoUrl(), imageLoader);
}
 类似资料:
  • 本文向大家介绍Android缓存之DiskLruCache磁盘缓存的使用,包括了Android缓存之DiskLruCache磁盘缓存的使用的使用技巧和注意事项,需要的朋友参考一下 DiskLruCache和LruCache不同的是,LruCache是内存缓存,而DiskLruCache是指磁盘缓存,顾名思义就是把文件缓存到磁盘,也也就是手机的内存卡中。接下来先简单介绍DiskLruCache的使用

  • 想象一下,如果没有磁盘缓存的世界。当用户访问网页的时候,每次浏览器都需要从网站下载网页,图片,JS等资源,这其实费力又不讨好。解决这一问题的方法就是将之前浏览器下载的资源保存下来,存到磁盘中,以备今后使用。当然,资源有时效性,也会变的不再有效,所以有相应的退出机制来解决这一问题。在现代浏览器中,绝大多数浏览器都有磁盘缓存机制,因为它确实能够提高网页的加载速度,能够省去了网络的时间。 特性 为了适应

  • 这里的磁盘缓存功能是指使用缓存磁盘来存储租户常用的一些数据。例如,假设你通过gateway azure设置访问一个对象并下载下来进行缓存,那接下来的请求都会直接访问缓存磁盘上的对象,直至其过期失效。此功能允许Minio用户: 对象的读取速度性能最佳。 任何对象的首字节时间得到显著改善。 开始 1. 前期条件 安装Minio - Minio快速入门。 2. 运行Minio缓存 磁盘缓存可以通过修改M

  • 细节 Linux 中,设备用/dev/目录下的文件表示。例如 /dev/hda1 第一块硬盘的第一主分区 /dev/hdb5 第二块硬盘的第一逻辑分区 /dev/sda4 第一块 SATA 硬盘的第四主分区,或者扩展分区 /dev/null 黑洞设备 关于磁盘设备,详见“分区概念”一节 mount 设备文件 [挂载路径] 挂载文件系统 -t 指定文件系统的类型 通常不必指定,mount 自

  • 问题内容: 在一个课堂项目中,我的老师告诉我们进行一些代码评估(C语言),并且这样做,我们需要在测试期间禁用磁盘缓存。 当前我正在使用Ubuntu 12.04,该怎么做? 谢谢。 问题答案: 您需要root用户权限才能执行此操作。您可以运行命令以禁用写缓存,在该驱动器中必须将驱动器替换为设备: 您还可以像这样选择性地禁用对单个分区的写缓存:。 要重新启用缓存,只需使用参数。 男子hdparm的,人

  • 7.1 cache_dir指令 cache_dir指令是squid.conf配置文件里最重要的指令之一。它告诉squid以何种方式存储cache文件到磁盘的什么位置。cache_dir指令取如下参数: cache_dir scheme directory size L1 L2 [options] 7.1.1 参数:Scheme Squid支持许多不同的存储机制。默认的(原始的)是ufs。依赖于操作