안드로이드 looper, handler, thread
TRANSCRIPT
NHN NEXT Eunjoo Im
A n d r o i d
L o o p e r -
H a n l d e r
N H N N E X T
A n d r o i d A d v a n c e d
NHN NEXT Eunjoo Im
Looper-Hanlder사용 목적
두개이상의 thread 사용시동기화이슈를차단
Android는 main thread ( = UI thread)에서만 UI 작업을허용
Handler를통해 Message나 Runnable 객체를전달하면 thread가내부적으로가지는 Looper 안의Message Queue에넣어순차적으로작업을진행하는구조
NHN NEXT Eunjoo Im
Looper-Hanlder구조
그림출처: http://blog.naver.com/kimyow/50119087926
Thread 내부의 Message Queue에쌓인Message/runnable를Looper가꺼내고Handler의 handlerMessage() 로처리
다른 Thread는 Handler의sendMessage()로
Message나 Runnable을목적 Thread의Message Queue로전달
NHN NEXT Eunjoo Im
LooperHanlderMessage
Queue에들어갈Job 단위
처리해야할코드 Parcelable을상속 다른 Process로
전달가능한데이터
Message를Queue에넣거나Queue에서뺌
Message의처리시간설정(기본값: 순차)
반복적으로루프를돌면서Message Queue에서 Message를하나씩꺼내서실행시킴
NHN NEXT Eunjoo Im
Handler Thread구조
그림출처: http://cafe.daum.net/_c21_/bbs_search_read?grpid=1MWA2&fldid=aAfL&datanum=98&docid=1MWA2%7CaAfL%7C98%7C20110704111711
일반적인 Thread를확장내부에반복해서루프를도는 Looper를가지며Looper는내부에 Message Queue를가짐Message Queue는 Message/Runnable를가짐Thread를 HandlerThread로생성하면 Looper와 MQ가함께생성
NHN NEXT Eunjoo Im
AsynkTask구조
그림출처: http://cafe.daum.net/_c21_/bbs_search_read?grpid=1MWA2&fldid=aAfL&datanum=98&docid=1MWA2%7CaAfL%7C98%7C20110704111711
UI 작업을위해 Message를생성하고 Handler를통해보내는작업을간소화한클래스UI 작업을위한 Callback 함수제공
AsyncTask 상속받아구현
NHN NEXT Eunjoo Im
참고자료
http://developer.android.com/reference/android/os/Looper.htmlhttp://developer.android.com/reference/android/os/Handler.htmlhttp://developer.android.com/reference/android/os/Message.html
Android Developers
http://cafe.daum.net/_c21_/bbs_search_read?grpid=1MWA2&fldid=aAfL&datanum=98&docid=1MWA2%7CaAfL%7C98%7C20110704111711
슈퍼드로이드안드로이드기본강좌Activity에대해서 - Thread 와 Android Main Thread
http://blog.naver.com/kimyow/50119087926
안드로이드 Handler 이야기- Handler와 Looper
NHN NEXT Eunjoo Im
ThankYou