티스토리 뷰
프로그래밍/Android
[Android] This Handler class should be static or leaks might occur
DwEnn 2017. 10. 29. 20:10728x90
반응형
This Handler class should be static or leaks might occur
안드로이드에서 Handler 오브젝트는
모든 스레드 반복문에서 참조하는데
어느 한 곳에 종속되면 안되기 때문이다.
그렇게 되면 GC가 되지 않아 Memory Leak이 계속해서 발생하게 되는 것이다
이전 소스
1 2 3 4 5 6 | Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; | cs |
Handler를 상속받은 클래스를 하나 만들어 static 등록
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private final MyHandler handler = new MyHandler(this); private static class MyHandler extends Handler { private final WeakReference<MainActivity> weakReference; public MyHandler(MainActivity activity) { this.weakReference = new WeakReference<MainActivity>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); } } | cs |
반응형
'프로그래밍 > Android' 카테고리의 다른 글
[Android] Handler.handleMessage() 사용 (0) | 2017.10.29 |
---|---|
[Android] 메모리관리 (0) | 2017.10.29 |
[Android] Adapter.notifyDataSetChanged() (0) | 2017.09.29 |
[Android] EditText 입력 변화 이벤트 addTextChangedListener (0) | 2017.09.28 |
[Android] RecyclerView getPosition() (0) | 2017.09.28 |
공지사항
최근에 올라온 글