Android에서 자주 사용하는 Reference에는 3가지가 있습니다. 간단하게나마 정리해둡니다.
1. 일반 자바레퍼런스(Strong)
- 어딘가에서 참조 중이면 계속 존재
- 이런 객체가 많아지면 메모리 누수
2. WeakReference(Weak)
- 자바 레퍼런스에 한가지 예외를 둠.
- WeakReference만 참조하고 있는 객체는 가비지 컬렉션 발생시 메모리 해제 됨.
3. SoftReference(Soft)
- WeakReference 보다 약간 강한 레퍼런스.
- OutOfMemoryError 가 발생하기 전까지는 메모리에 존재.
- WeakReference 처럼, SoftReference만 참조하고 있는 객체는 OutOfMemoryError 발생시까지 메모리 존재.
- OutOfMemoryError 가 발생하면, SoftReference로 참조하는 오브젝트들이 먼저 GC에 수집됨.
대신, try{}catch(OutOfMemoryError e){} 로 감싸주어 처리해야함.
'Android > Samples & Tips' 카테고리의 다른 글
[ICS] 안드로이드 ICS AVD 생성 실패!!!!!!! (2) | 2012.03.15 |
---|---|
[Android] MediaRecorder error - Front Camera: start failed: -16 (1) | 2012.01.17 |
[Android tip] XML parser 성능비교 (0) | 2011.11.23 |
[Android] resource fields cannot be used as switch-cases(convert to if-else) (4) | 2011.11.21 |
[Android] 버튼클릭을 통한 색 변경 예제 (1) | 2011.11.01 |