日常问题记录-Android-Bug-OOM

大家好哇,我是梦辛工作室的灵,最近的项目中,我又遇到了一个bug,就是我写了一个类 将app会用到的Bitmap缓存起来进行管理,防止OOM嘛,不过莫名奇妙的事情还是发生了,内存依旧上涨,且没有释放
日常问题记录-Android-Bug-OOM_第1张图片
然后我就查到了获取缓存对象的那里的代码,打上了日志数据,然后就发现,一直在新建,并没有缓存
日常问题记录-Android-Bug-OOM_第2张图片

然后我仔细的观察了下代码,没有问题啊,获取后就返回嘛
日常问题记录-Android-Bug-OOM_第3张图片
百思不得其解,然后我看到了声明那里
在这里插入图片描述
看到Key是String类型的,然后我又回到我获取缓存时候的key的Rid是Int类型的,啪,原来如此, ConcurrentHashMap.get(Object) 获取里面是Object参数,就说为什么没有报错,目测可能是因为类型不一样,导致其hashCode不一样,所以每次都是一个新的值,就无法命中缓存,简单处理下就好了
日常问题记录-Android-Bug-OOM_第4张图片
完美

日常问题记录-Android-Bug-OOM_第5张图片

你可能感兴趣的:(bug)