Я пытаюсь исправить утечку памяти, что я не понимаю, как это происходит, может быть, с вашей помощью я могу добраться до решения. У меня есть ListFragment и класс FileInfo, который хранит данные для каждого элемента списка. В этом классе FileInfo (это большой, чтобы разместить его здесь) я следующее:Утечка памяти с помощью HashMap на Android
public static final HashMap<String, FileInfo> sFileInfoObjectList = new CacheLinkedHashMap<String, FileInfo>();
Я использую этот кэш, так что я не должен строить каждый FileInfo каждый раз. Каждый раз, когда вызывается MyListFragmnet get reloaded FileInfo.getFileInfo (...), если FileInfo находится в кеше, он возвращается, в противном случае создается новый. Как я вижу в DDMS, куча приложения растет каждый раз, когда ListFragment перезагружается. Почему я уверен, что sFileInfoObjectList протекает? Потому что, когда я вызываю sFileInfoObjectList.clear() в методе onDestroy() в ListFragment, кучи не растут. Я также проверил размер sFileInfoObjectList, чтобы узнать, растет ли он, но это не так, поэтому для меня это действительно запутывает.
И мы должны читать ваш ум или заклинать ответ магическим заклинанием? Вы должны показать нам, что вы сделали, по крайней мере, соответствующие части, иначе никто не сможет вам помочь. –
Вы должны использовать свой опыт, чтобы показать другим путь к решению. – David
Как можно найти решение, если никто не знает, в чем проблема? –