Thread 에서 UI 작업을 하려면 Handler로 처리를 해야 하는데,
현재 스레드에서 myHandler.sendMessage(); 형식으로 호출하여
아래와같이 사용하고 있습니다.
Handler myHandler = new Handler(){
public void handleMessage(android.os.Message msg){
// Source Code
}
};
이렇게 사용할 경우
This Handler class should be static or leaks might occur
이런 경고 메세ㅔ지가 출력이 되게 되는데요.
검색을 많이 해봤는데, 약참조 형식으로 Handler 클래스를 상속받은 클래스를 따로 생성하여
사용하라는 답이 대부분이었습니다.
그런데, 제가 잘못한 것인지..그렇게하면 에러가 나더라구요..
그래서 위소스 코드에서
Handler myHandler = new Handler(Looper.getMainLooper()){
public void handleMessage(android.os.Message msg){
//Source Code..
}
};
와 같이 Looper.getMainLooper()를 인자로 추가시키니
경고메세지는 사라졌습니다. 에러도 안나고 핸들러 정상작동되구요..
이렇게 해결해도 정상적인 해결 방법인가요?
우선 노란줄이 없어지니 보기 시원하고 마음이 후련하긴한데..
어딜가도 Looper.getMainLooper()로 경고메세지를 없애라는 답은 없어서
조금 불안하기두 하구요..
메모리관련하여 아무 문제 없을까요??