관리 메뉴

웹개발자의 기지개

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

안드로이드

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

http://portfolio.wonpaper.net 2020. 2. 6. 07:22

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

 

참고 포스팅 : https://m.blog.naver.com/PostView.nhn?blogId=ylee96&logNo=221461984289&proxyReferer=https%3A%2F%2Fwww.google.com%2F

Comments