Dev/Android

HandlerThread 사용하기

healthyryu 2017. 11. 26. 23:15

HandlerThread



기본적으로 Thread 를 사용하기 위해서 Looper 를 생성해줘야 하는데, HandlerThread 를 이용하면 Looper 를 자동으로 가지고 있는 클래스를 제공한다.


HandlerThread handlerThread = new HandlerThread("HandlerThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());

Handler handler = new Handler(handlerThread.getLooper(), Handler.Callback);

handler.sendEmptyMessage(0);

....


HandlerThread 객체를 생성하고 start() 를 한다. start()만 하면 Looper를 생성하기 때문에, handlerThread.getLooper() 를 통해서 Looper 를 가져온다. 그리고 handler 를 실행한다. Handler 의 메세지에 따른 처리를 별도로 하려면 위의 파란색 라인같이 Handler.Callback 을 넣고 구현체를 만들면 된다.


GitHub : https://github.com/wlgnsdi/HandlerThread


참고

https://stackoverflow.com/questions/25094330/example-communicating-with-handlerthread

https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a

: https://medium.com/@ali.muzaffar/handlerthreads-and-why-you-should-be-using-them-in-your-android-apps-dc8bf1540341

: https://academy.realm.io/kr/posts/android-thread-looper-handler/

반응형