- 활동 각 재생성합니다 (에서 onCreate-들의 OnDestroy)는
- 보기 두 차일와 ViewFlipper 구성 변경 orientatin : 간단한 RelativeLayout의 및 ListView에
- ListView에 행이 복잡한 레이아웃과 관련된 태그 이
문제는 각 방향 변경시 메모리 누수가 발생한다는 것입니다. 전체보기 레이아웃이 메모리에 남아 있습니다. 액티비티 자체는 컨텍스트이므로 관련 객체가 유지되는 한 메모리에 남아 있습니다. 그래서 지금 누수가 발생하는 이유를 찾으려고합니다.
보기가 setTag() 메소드입니다. 행에 대한 정보를 저장하는 데 사용하고 있습니다 (ListView의 모든 행 (뷰)에 태그가 연결되어 있음).
하지만 뷰와 GC는 태그를 어떻게 사용합니까? 내 태그 객체 (소지자)는 뷰에 대한 참조를 포함하지만 뷰에서 태그에 대한 참조를 제거하면이 참조가 (태그 자체로) 쉽게 수집됩니다.
누구나 ListView에서 비슷한 문제가 발생 했습니까?
P. 순환 참조, 컨텍스트, 소지자 등의 레이아웃을 GC가 어떻게 정리하는지 궁금합니다.
내가 틀렸다고 정정하되, 태그가 SparseArray에 저장되었다고 생각합니다. –
@MM. 네가 맞다. 키가있는 태그에 뷰를 저장하는 것이 지금 위험하지는 않습니다. 의견을 주셔서 감사합니다. – Michael