Вы не понимаете, потому что вы сделали критическую ошибку. течь == ноль верно во вновь созданном действии. утечка по-прежнему не указывает на «старую» активность.
Почему? Я думал, что утечка была статичной, спросите вы. Что ж. , .
Итак, в первый раз действие создается, утечка равна нулю, затем onCreate () и утечка теперь ссылается на объект Leaky. Если я создам больше экземпляров этого действия, их утечки не будут равны нулю и будут ссылаться на тот же объект.
Но что происходит, когда вы переворачиваете ориентацию, так это то, что действие разрушается. Таким образом, не существует экземпляра объекта деятельности. Затем Android создает новое действие, в котором утечка равна нулю (поскольку в отношении Android другого экземпляра действия не существует).
Однако для сборщика мусора кто-то имеет ссылку на уничтоженную активность, а именно на ее внутренний класс Leaky. Так что это не освободит эту память. Следовательно, продолжая менять ориентацию, вы продолжаете пропускать воспоминания о деятельности.