gpt4 book ai didi

android - 使用 LruCache 并避免 OutOfMemoryException

转载 作者:行者123 更新时间:2023-11-29 00:26:04 25 4
gpt4 key购买 nike

我的应用程序中有一项 Activity 显示了大约 1000 个非常小的位图(每个位图大约 20kb)。加载一些位图后,出现 OutOfMemoryException

我第一次阅读有关 SoftReference 的内容,它看起来可以解决我关于 OOM 异常 的问题。但是后来,我读到它不会缓存我的位图并将“过早”释放它们,因此它必须再次解码位图并“浪费”时间。所以,我实现了 LruCache .

如何确保在实现LruCache 时不会出现OOM 异常

也许我应该只使用 SoftReference,因为我的主要目标是避免 OOM

或者,这可能是我的解决方案? LruSoftCache

最佳答案

在实现LruCache时,您应该指定缓存大小,并告诉它如何计算每个对象(在本例中,对象是位图)的大小。

您可以使用以下示例:

// uses 1/8th of the memory for the cache
final int cacheSize = (int) (Runtime.getRuntime().maxMemory() / 8L);
LruCache bitmapCache = new LruCache(cacheSize) {
protected int sizeOf(String key, Bitmap value) {
return value.getByteCount();
}}

关于android - 使用 LruCache 并避免 OutOfMemoryException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com