This Handler class should be static or leaks might occur 시 해결법

by 조쉬 posted Dec 14, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

쓰레드 처리를 하면서 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;
        }
    });

 


Articles

1 2 3 4 5 6 7 8 9 10