쓰레드 처리를 하면서 Handler 클래스를 이용하였는데,
에러는 아니지만, 주의 표시가 나왔다.
대충 영문을 살펴보니, 이 핸들러를 static 클래스로 하라고 권유하고 있었다. 그렇지 않으며 메모리 누수가 발생할 수 도 있다는 것이다.
이래저래 구글링하여 아주 좋은 포스팅을 발견하고 나름 정리해 보았다.
수정전의 소스
Handler handler = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
}
};
보완한 뒤의 소스 , Handler.Callback() 함수 이용한다.
Handler handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
return true;
}
});