Я решил, что настало время узнать, как использовать Leak Canary для обнаружения утечек в моих приложениях, и, как я всегда это делаю, я попытался реализовать его в своем проекте, чтобы действительно понять, как использовать этот инструмент. Реализация этого была достаточно простой, сложная часть читала то, что инструмент отбрасывает мне. У меня есть scrollview, который, похоже, накапливает память в диспетчере памяти, когда я просматриваю вверх и вниз (даже если он не загружает никаких новых данных), поэтому я подумал, что это хороший объект-кандидат для отслеживания утечек, вот результат:
Похоже, что v7.widget.RecyclerView просачивает адаптер, а не мое приложение. Но это не может быть прав... правильно?
Здесь приведен код адаптера и класс, использующие его: https://gist.github.com/feresr/a53c7b68145d6414c40ec70b3b842f1e
Я начал щедрость за этот вопрос, потому что он снова появился после двух лет на совершенно другом приложении