Junior — Middle
Existiriam situações em que seja necessário remover ligações fortes no código, e quais seriam as possíveis razões para isso?
sobes.tech IA
Resposta da IA
Referências fortes em Android e Java apontam para objetos que não podem ser removidos pelo coletor de lixo enquanto existirem essas referências. É necessário remover ou definir como null as referências fortes nas seguintes situações:
- Prevenção de vazamentos de memória. Por exemplo, se um objeto com uma referência forte vive mais do que deveria e mantém recursos grandes (como o contexto de uma Activity, View, etc.), isso leva a vazamentos.
- Liberação de recursos. Quando um objeto não é mais necessário, definir as referências fortes como null permite que o coletor de lixo libere a memória.
- Prevenção de dependências cíclicas. Em alguns casos, os objetos se referenciam mutuamente, e sem remover as referências fortes, o coletor de lixo não poderá limpá-los.
Exemplo: em Android, frequentemente se define como null as referências a Context ou Activity em campos estáticos ou callbacks para evitar vazamentos de memória ao alterar a configuração ou fechar uma Activity.