Ссылки на activity и утечки памяти
Есть активити. В нём есть разные блоки (например, некая форма из нескольки полей). Хочется поведение этих блоков вынести в отдельные классы.
- Создаю класс, скажем,
MyBlock - В
onCreate()активити создаю объект, передавая ему:- ViewGroup - контейнер блока
- Ссылку на само активити - нужна для проброса событий и context для создания новых элементов внутри
- Объект ещё вешает на элементы обработчики для onClick и другие
- Сохраняю ссылку на объект в свойстве объекта activity - нужна для взаимодействия с ним
- И таких свойств может быть несколько, включая списки однотипных объектов
Вопрос: как тут обстоит дело с утечками памяти?
Активити может часто уничтожаться/пересоздаваться. Советуют "не держать ссылку на активити в объектах, которые живут дольше этого активити". В моём примере они жить дольше не должны. Однако, тут образуется множество циклических ссылок. Сможет ли сборщик мусора их корректно разрулить?
Стоит ли (и поможет ли) в activity.onDestroy() дестроить все связанные объекты и обнулять ссылки на них?