아래 참고싸이트를 번역한 수준밖에안됩니다 ^^;;;

 

 

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

 

9 ways to avoid memory leaks in Android

I have been an android developer for quite some time now. And I realised that most of that time, I tend to spend on adding new features to…

android.jlelse.eu

 

+ Recent posts