Dev_Study/Android

15. 핸들러 (Handler)

LeeDaniel 2018. 1. 29. 14:56

안드로이드에서 UI처리를 위해 사용되는 기본 스레드는 '메인 스레드'라고 부른다

이 메인 스레드에서 이미 UI에 접근하고있으므로

새로 생성한 다른 스레드에서는 핸들러 (Handler)객체를 이용해

메시지를 전달함으로써 메인 스레드에서 처리하도록 만들 수 있다

 

애플리케이션을 위해 프로세스가 만들어지면 메인 스레드는 최상위에서 관리되는 애플리케이션 객체인

액티비티, 브로드캐스트 수신자 등과 새로 만들어지는 윈도우를 관리하기 위한 메시지 큐(Message Queue)를

실행하게 된다.

이 메시지 큐를 이용해 순차적으로 코드를 수행할 수 있으며

이렇게 메시지 큐를 이용해 메인 스레드에서 처리할 메시지를 전달하는 역할을 담당하는 것이

핸들러 클래스

결국 핸들러는 실행하기를 원하는 특정기능이 있을때 현재 수행되고있는 스레드가 아닌

메인 스레드에서 실행시키고자 할 때 사용된다

1. obtainMessage()

스레드#1에서 핸들러가 관리하는 메시지 큐에서 처리할 수 있는 메시지 객체 하나를 참조한다

 

2. sendMessage()

스레드#1에서 참조한 메시지 객체에 필요한 정보를 넣은후 메시지 큐에 넣는다

 

3. handleMessage()

메시지 큐에 들어간 메시지는 순서대로 핸들러가 처리하게 된다

handleMessage()에 들어있는 코드가 수행되는 위치스레드#1이 아닌 메인 스레드

반응형

'Dev_Study > Android' 카테고리의 다른 글

16. AsyncTask  (0) 2018.02.07
안드로이드 앱 아이콘 사이즈  (0) 2018.02.06
14. 이벤트  (0) 2018.01.29
13. 프래그먼트 (Fragment)  (0) 2018.01.29
12. 다이얼로그(Dialog)  (0) 2018.01.26