아래 참고싸이트를 번역한 수준밖에안됩니다 ^^;;;
Thread 인스턴스를 생성해서 운영할때도 문제가 생길 수 있습니다.
Thread 가 실행되는 시점에서는 GC가 Thread를 수거해가지 않습니다. 또한, Thread가 참조하고있는
Outer class등의 reference도 잡고있어서, Activity내의 Thread를 운영할때는 주의를 기울여야 합니다.
흔히들 하는 실수
1. 액비비티 내에서 Thread의 참조변수를 static 변수로 두는 행위
2. custom Inner Thread class를 정의할때 non-static 으로 정의하는경우
해결책
1. Thread 인스턴스를 static변수로 저장하지 말아라.
2. custom static innter thread class를 정의하고 운영해라.
단 Activity가 종료될때 (onDestroy() ), Thread의 종료를 끝낼 수 있는 로직을 추가해서 깔끔하게 종료되도록 해라.
참고
https://android.jlelse.eu/9-ways-to-avoid-memory-leaks-in-android-b6d81648e35e
'안드로이드 > Memory Leak' 카테고리의 다른 글
9. memory leak 회피방법: TimerTask Reference 에서 주의 (0) | 2019.08.25 |
---|---|
7. memory leak 회피방법: Handler Reference 에서 주의 (0) | 2019.08.25 |
6. memory leak 회피방법: AsyncTask Reference 에서 주의 (0) | 2019.08.15 |
5. memory leak 회피방법: Broadcast 에서 주의 (0) | 2019.08.15 |
4. memory leak 회피방법: 익명클래스를 주의하라 (0) | 2019.08.12 |