问题标签 [android-lru-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在 android 中使用 lru 缓存创建自定义谷歌标记?
嗨,任何人都可以提供示例代码来使用 lru 缓存创建自定义谷歌标记。我不知道如何重用位图并在超出内存时清除缓存。
java - LRUCache 返回大小 0,直到所有图像都被缓存
我正在使用 LRUCache 缓存从服务器检索的图像。我从 RecyclerView 请求它们,但直到所有图像都被缓存,LRUCache 实例返回大小 0。
这是代码
我应该怎么做才能解决这个问题?
谢谢大家
android - Picasso - 将缓存大小限制为 5 MB
我在我的应用程序中使用 Picasso 来下载和缓存图像。
它的工作很好,但有一个问题:应用程序有很多图像,并且在短时间内应用程序缓存增加超过 10 MB!
经过长时间的搜索,我找到了在毕加索中限制缓存的解决方案,但不起作用:
我在我的应用程序类的 onCreate 中使用此方法。
我的工作出了什么问题?还是有其他方法可以实现这一目标?
{我希望清楚地解释我的问题:/}
java - NullPointerException: key == null || 值 == 空
我的应用程序中有一个适配器,它可以扩展帖子并将它们显示在ListView
. 每个帖子都有一个图像,因此它用于LruCache
存储图像。
该应用程序运行良好,但它崩溃了两三次,我无法意识到问题出在哪里。只有上一次,我可以从 LogCat 获得这个日志:
E/AndroidRuntime(2407): 引起: java.lang.NullPointerException: key == null || 值 == 空
崩溃仅在最近安装应用程序时发生(当我从设备中删除应用程序并重新安装时)!当我第一次打开应用程序并开始快速上下滚动时,有时它会崩溃。(它不会一直发生,它是完全随机的!)
在那之后,它不会再崩溃了......:/
我认为这与 LruCache 和空缓存有关。我看到了这个问题,但这不是我的问题!我确实在我的代码中检查了空缓存:
有什么建议吗?
PS:我知道我的问题没有足够的细节,但这就是我所拥有的全部信息!
android - Android sdcard最小文件大小总是4kb吗?
我正在使用 DiskLruCache 来存储大约 70k 个文件。这些文件非常小,其中一半甚至不到 13 个字节。但是,每个文件大小在磁盘中至少为 4kb,因为我认为这是最小块大小。因此,当我为 256MB 的缓存设置 maxSize 时,缓存实际上会增长到磁盘中的 450MB 以上。我修改了 DiskLruCache 中的代码,因此它考虑到文件存储在 4kb 块中。但是,我的问题是,我可以相信每个 Android 设备总是将其 sdcard 划分为 4kb 块吗?会不会是另一个设备的块大小更大或更小?
android - LruCache 返回 null
当我尝试使用它们的键检索它们时,我有以下代码来缓存位图。他们总是返回 null 。请帮我 。谢谢你
获取和设置缓存的函数
- - - - - -更新 - - - - - - - - - - - - - - - - - - - ---好吧,经过一些调试发现它正在插入值,但是在我退出应用程序后我无法访问它。当我尝试重新启动应用程序时,缓存会丢失。请有人可以帮助我如何保留该价值。谢谢你
java - 毕加索图像下载和缓存行为
所以我最近想尝试一下毕加索库的缓存功能,我遇到了这个令人困惑的情况:
我从我的网络服务器(使用 Retrofit2)检索图像的文件名和路径ImageComponent
,并将它们存储到对象(模型)中:
所以现在加载成功了,我使用PicassoRecyclerView
填充这些图像。加载和膨胀过程是成功的,但是在缓存图像时会有点棘手。
案例1:使用android.util.LruCache
(为方便起见,我会贴出整个Recyclerview
适配器的代码,我会尽量简洁)
结果1
(注意最后两张图片,以及在显示正确图片之前它们如何显示其他先前的图片)
几点注意事项:
- 我遇到了一个问题,根本没有显示图像。经过一番研究,我发现这个答案建议将. (工作)
target
ImageView
- 我不太明白毕加索是如何缓存图像的。是自动过程还是手动过程?该答案表明毕加索为您处理此任务。但是当我实际尝试时(没有 android Lrucache),似乎没有进行缓存:每次我来回滚动时,图像都会重新加载。
- 实际上,我打算发布第二个用例,使用Picasso的
Lrucache
(图像随机显示,每次滚动都会更改),但我认为这篇文章已经足够长了。
我的问题是:
- 为什么我会出现这种奇怪的行为?(如附件GIF所示)
- 这整个缓存过程是如何工作的?在使用Picasso时我应该(或者我可以)使用 Lrucache吗?
Lrucache
SDK 自带的和Picasso的有什么区别?(性能、最佳用例场景等...)
android - 关闭应用程序时重置Android磁盘LRU缓存
这真的是预期的行为吗?我找不到有关此问题的任何文档。
java - java.lang.NoClassDefFoundError 在应用程序 onCreate 中初始化类
我正在尝试在我的应用程序onCreate
方法上实例化一个类,如下所示:
以下是我的VolleySingleton
课
但是我的应用程序在启动时崩溃,并显示以下堆栈跟踪,说明没有找到类的类定义VolleySingleton
我对 java 和 android 还很陌生,无法弄清楚为什么它找不到类。据我了解,它能够找到该类,但异常发生在我试图定义的构造函数内部mImageLoader
。不过我不确定。任何帮助将非常感激。
更新
好的,我尝试使用另一台设备(Samsung s4)启动该应用程序,该应用程序运行良好。但是当我用另一台设备(三星谷歌 Nexus S)尝试它时,它会因上述堆栈跟踪而崩溃。
更新#2
我错过了上面堆栈跟踪中的一些日志条目,也许这可以帮助弄清楚发生了什么。
java - 如何清除 Android Volley 的 LRUImageCache 中的缓存以重新加载图像?
我正在使用 Volleys 库进行图像下载。当用户更改个人资料图像时,我将图像上传到服务器以替换以前的图像,因为我在数据库中使用用户的 ID,所以指向个人资料图像的链接始终相同。
我对缓存的问题是它无法替换缓存中的位图,在服务器返回成功响应并带有我想替换 NetworkImageView 中的图像的链接后,但这似乎不起作用。这是我的 LruImageCache 类
}
我的 AppController 中有这样的类
}
在完全上传图片并获取服务器返回的 url 后,我尝试只使用这一行,但它没有用
我还尝试调用 LruCache 从缓存中删除位图,以便我将图像重新设置回来,但似乎也不起作用。
我还尝试使用不同的方法手动下载位图,然后使用 new_url 作为键放入缓存中,但仍然无法正常工作。
任何帮助,如何替换缓存中的位图以便加载新上传的图像文件?我确定图像文件已上传到服务器,因为我可以打开它并看到它被替换。它现在工作的唯一方法是如果我关闭应用程序并重新打开它。