大家好哇,我是夢辛工作室的靈,最近的項目中,我又遇到了一個bug,就是我寫了一個類 將app會用到的Bitmap緩存起來進行管理,防止OOM嘛,不過莫名奇妙的事情還是發(fā)生了,內存依舊上漲,且沒有釋放
然后我就查到了獲取緩存對象的那里的代碼,打上了日志數據,然后就發(fā)現,一直在新建,并沒有緩存
然后我仔細的觀察了下代碼,沒有問題啊,獲取后就返回嘛
百思不得其解,然后我看到了聲明那里
看到Key是String類型的,然后我又回到我獲取緩存時候的key的Rid是Int類型的,啪,原來如此, ConcurrentHashMap<String, Bitmap>.get(Object) 獲取里面是Object參數,就說為什么沒有報錯,目測可能是因為類型不一樣,導致其hashCode不一樣,所以每次都是一個新的值,就無法命中緩存,簡單處理下就好了
完美文章來源:http://www.zghlxwxcb.cn/news/detail-607180.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-607180.html
到了這里,關于日常問題記錄-Android-Bug-OOM的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!