大家好哇,我是梦辛工作室的灵,最近的项目中,我又遇到了一个bug,就是我写了一个类 将app会用到的Bitmap缓存起来进行管理,防止OOM嘛,不过莫名奇妙的事情还是发生了,内存依旧上涨,且没有释放
然后我就查到了获取缓存对象的那里的代码,打上了日志数据,然后就发现,一直在新建,并没有缓存
然后我仔细的观察了下代码,没有问题啊,获取后就返回嘛
百思不得其解,然后我看到了声明那里
看到Key是String类型的,然后我又回到我获取缓存时候的key的Rid是Int类型的,啪,原来如此, ConcurrentHashMap<String, Bitmap>.get(Object) 获取里面是Object参数,就说为什么没有报错,目测可能是因为类型不一样,导致其hashCode不一样,所以每次都是一个新的值,就无法命中缓存,简单处理下就好了
完美